2014-12-03 59 views
-1

所以当我运行它时,它给了我毛支付,但它只是0.0当我这样做...我需要知道如何让它显示实际输出。如何让这些值显示为输出而不是“0.0”?

import javax.swing.JOptionPane; 


public class Payroll_demo 

{ 
    public static void main(String[] args) 

    { 

    String input; 

    Payroll A = new Payroll(); 

    input = JOptionPane.showInputDialog(null, "What is your name?"); 

    A.setName(input); 

    input = JOptionPane.showInputDialog(null, "What is your ID number?"); 

    int input_b = Integer.parseInt(input); 

    A.setID(input_b); 

    input = JOptionPane.showInputDialog(null, "What is your hourly pay rate?"); 

    A.setPayRate(input); 

    input = JOptionPane.showInputDialog(null, "How many hours did you work?"); 

    A.setHours(input); 

    JOptionPane.showMessageDialog(null, A.Gross()); 


    } 


} 

我认为这可能是一个构造问题,但我老实说,没有线索。我觉得,如果香港专业教育学院尝试过一切,但必须有东西...

public class Payroll 

{ 

private String name; 

private int ID; 

private double payrate; 

private double hours; 

private double grosspay; 


    public void setName(String nam) 

    { 

     String Name = nam; 


    } 

    public void setID(int id) 

    { 

     int ID = id; 


    } 

    public void setPayRate(String pay) 

    { 

     double PayRate = Double.parseDouble(pay); 


    } 

    public void setHours(String hou) 

    { 

     double Hours = Double.parseDouble(hou); 


    } 

    public String getName() 
    { 

     return name; 

    } 

    public int getID() 
    { 

     return ID; 

    } 

    public double getPayRate() 
    { 

     return payrate; 

    } 

    public double getHours() 
    { 

     return hours; 

    } 


    public double Gross() 
    { 

     double Gross = hours * payrate; 

     grosspay = Gross; 

     return grosspay; 

    } 






} 
+1

你把太多的间距放在任何地方。 – 2014-12-03 02:48:53

+2

您通过在您的setter方法中重新声明它们来隐藏所有变量。这只会初始化本地阴影变量,使字段为空或0。 – 2014-12-03 02:49:07

回答

1

怎么样,而不是重新声明的变量...

public void setName(String nam) 
{ 
    String Name = nam; 
} 

public void setID(int id) 
{ 
    int ID = id; 
} 

public void setPayRate(String pay) 
{ 
    double PayRate = Double.parseDouble(pay); 
} 

public void setHours(String hou) 
{ 
    double Hours = Double.parseDouble(hou); 
} 

您使用的类的实例字段相反...

public void setName(String nam) 
{ 
    name = nam; 
} 

public void setID(int id) 
{ 
    ID = id; 
} 

public void setPayRate(String pay) 
{ 
    payRate = Double.parseDouble(pay); 
} 

public void setHours(String hou) 
{ 
    hours = Double.parseDouble(hou); 
} 
相关问题