java - Setter 和 Getter 返回 0 值

标签 java constructor super

出于某种原因,当我输入 RTH 和 CTH 的值时,我收到 0.0 值。我的换类员也遇到了类似的问题,但我设法解决了这个问题。不幸的是,尝试对问题进行逆向工程并没有帮助。我已经提供了我的类(class)和驱动程序的代码,尽管我几乎确信问题出在类(class)的某个地方。尽管如此,任何人都可以快速浏览一下 RTH/CTH setter / getter ,看看我在设置或调用它们时做错了什么。

public class TeamLeader extends ProductionWorker
{
    //private variables

    private double RTH;
    private double CTH;
    private double payRate;
    private double monthlyBonus;

    //constructor
    public TeamLeader(String name, String number, String hd, int shift, 
            double rate, double monthlyBonus, double RTH, double CTH)
    {

    super(name, number, hd, shift, rate);
        this.monthlyBonus = monthlyBonus;
    }


    public void setmonthlyBonus(double monthlyBonus)
    {
        this.monthlyBonus = monthlyBonus;
    }

    public void setpayRate(double payRate)
    {
        this.payRate = payRate;
    }

    public void setRTH(double r)
    {
        RTH = r;
    }

    public void setCTH(double c)
    {
        CTH = c;
    }
    //Getters

    public double getmonthlyBonus()
    {
        return monthlyBonus;
    }

    public double getpayRate()
    {
        return payRate;
    }

    public double getRTH()
    {
        return RTH;
    }

    public double getCTH()
    {
        return CTH;
    }
}

驱动程序

   public class WorkDriver {

       public static void main(String[] args) {
           String name;
           String number;
           String hireDate;
           int shift;
           double payRate;
           double monthlyBonus;
           double RTH;
           double CTH;

           name = JOptionPane.showInputDialog("Enter your name");
           number = JOptionPane.showInputDialog
                            ("Enter your number (Format: XXX-L)");
           hireDate = JOptionPane.showInputDialog("Enter your hire date");
           shift = Integer.parseInt(JOptionPane.showInputDialog
                            ("Please enter the work shift for the employee:\n"
                            + "\tEnter 1 for the day shift"
                            + "\n\tEnter 2 for the night shift"));
           payRate = Double.parseDouble(JOptionPane.showInputDialog
                            ("Enter your pay rate"));
           monthlyBonus = Double.parseDouble(JOptionPane.showInputDialog
                            ("Enter your monthly bonus"));
           RTH = Double.parseDouble(JOptionPane.showInputDialog
                            ("Enter your required traing hours"));
           CTH = Double.parseDouble(JOptionPane.showInputDialog
                            ("Enter your training hours attended"));

           //Production worker object
           TeamLeader driver = new TeamLeader(name, number,
                   hireDate, shift, payRate, monthlyBonus, RTH, CTH);

           JOptionPane.showMessageDialog(null,
               "----------- Employe Info ----------------"
                   + "\nName: " + driver.getName() 
                   + "\nEmployee Number: " + driver.getNumber() 
                   + "\nHire Date: " + driver.getHireDate() 
                   + "\nPay Rate: " + driver.getPayRate() 
                   + "\nShift: " + driver.getShift() 
                   + "\nMonthly Bonus: " + driver.getmonthlyBonus() 
                   + "\nRequired Training Hours: " + driver.getRTH() 
                   + "\nTraining Hours Attended: " + driver.getCTH());
           System.exit(0);
       }
   }

最佳答案

您永远不会调用CTHRTH 的setter。您将它们的值传递给构造函数,但不使用它们。

添加到 CTHRTH 的构造函数设置:

public TeamLeader(String name, String number, String hd, int shift, 
        double rate, double monthlyBonus, double RTH, double CTH)
{
    super(name, number, hd, shift, rate);
    this.monthlyBonus = monthlyBonus;
    this.RTH = RTH;
    this.CTH = CTH;
}

关于java - Setter 和 Getter 返回 0 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29569748/

相关文章:

java - Java Thread trail 中 "new"周围的括号?

c++ - 错误 C2082 : redefinition of formal parameter 'tmp'

c++ - 默认情况下是否创建 move 构造函数?

java - 我可以在 Java 中模拟 protected 父类(super class)方法调用吗?

java - super() 构造函数中的初始化问题

python - 未绑定(bind)的 super 对象,super(self, self)

java - 使用类来存储信息并调用它来构建数组

java - Hibernate/JPA 不创建表

c++ - 无法理解与模板和构造函数相关的错误

Java vanClass 给出找不到符号错误