首页 > 解决方案 > 需要帮助调用其他类的方法

问题描述

我还是 java 新手,我正在努力让这个程序为我的任务工作。

这是问题:

Jeff 在您附近经营一家当地零售店。他与您签约创建一个交互式应用程序,以帮助他提高员工工资。创建一个名为 Details 的类,该类将包含员工 ID 号、名字、姓氏和薪水的 get 和 set 方法。包括一个名为 getUpdatedSalary() 的方法,它将员工的薪水提高 10%。在您的主类中包含一个名为的静态方法printDetails(),该方法将生成员工详细信息报告,还包含一个名为的静态方法salaryDeductions(),该方法将在需要时显示员工扣除报告。

(我知道我没有做过salaryDeductions方法)

它正确输出所有内容,直到incAmtand newSAl,这两个它只是说 0,

我有两个课程,StaffSalaries 和 Details。这是我的代码:

StaffSalaries.java

package staffsalaries;

import javax.swing.JOptionPane;


public class StaffSalaries {

    public static void printDetails(Details e ){

     JOptionPane.showMessageDialog(null, "Employee ID Number: " + e.getIdNum()
     + "\nEmployee First Name: " + e.getName()
     + "\nEmployee Surname: " + e.getSurname()
     + "\nOrigonal Salary: R" + e.getSalary()
     + "\nIncreass on Salary: R" + e.getincAmt()
     + "\nTotal Salary: R" + e.getnewSal());



    }

    public static void main(String[] args) {

        //Variables
        String name, surname;
        int idNum;
        double salary, incAmt = 0, newSal = 0;

        //Input
        idNum = Integer.parseInt(JOptionPane.showInputDialog(null, "Please enter employee ID number."));
        name = JOptionPane.showInputDialog(null, "Please enter your first name.");
        surname = JOptionPane.showInputDialog(null, "Please enter your surname");
        salary = Double.parseDouble(JOptionPane.showInputDialog(null, "Pleasse enter the salary to be increased."));

        Details e =new Details (idNum, name, surname, salary, incAmt, newSal);
        e.getUpdatedSalary();
        printDetails();

    }

}

详细信息.java

package staffsalaries;
public class Details {

    public void getUpdatedSalary () {

        incAmt = salary * 0.1;
        newSal = incAmt + salary;

    }

    //Attributes
    private String name, surname;
    private int idNum;
    private double salary, incAmt, newSal;

    //Constructor
    public Details (int idNum, String name, String surname, double salary, double incAmt, double newSal) {
       this.idNum = idNum;
       this.name = name;
       this.surname = surname;
       this.salary = salary;
       this.incAmt = incAmt;
       this.newSal = newSal;
    }

    //Gettrs
    public String getName() {
        return name;
    }

    public String getSurname() {
        return surname;
    }

    public int getIdNum() {
        return idNum;
    }

    public double getSalary() {
        return salary;
    }

    public double getincAmt() {
        return incAmt;
    }

    public Double getnewSal() {
        return newSal;
    }

    //Setters
    public void setName(String name) {
        this.name = name;
    }

    public void setSurname(String surname) {
        this.surname = surname;
    }

    public void setIdNum(int idNum) {
        this.idNum = idNum;
    }

    public void setSalary(double salary) {
        this.salary = salary;
    }

    public void setincAmt(double incAmt) {
        this.incAmt = incAmt;
    }

    public void setnewSal(double newSal) {
        this.newSal = newSal;
    }
}

标签: javaclassmethods

解决方案


记住这些事情。方法只有在被调用时才会执行。您还没有调用 getUpdatedSalary() 方法。试着弄清楚你会在哪里调用它。

此外,代码将使用您定义当前方法的方式,但请查看返回类型,您真的需要返回该值吗?

public static void printDetails(Details e ){
     JOptionPane.showMessageDialog(null, "Employee ID Number: " + e.getIdNum()
     + "\nEmployee First Name: " + e.getName()
     + "\nEmployee Surname: " + e.getSurname()
     + "\nOrigonal Salary: R" + e.getSalary()
     + "\nIncreass on Salary: R" + e.getincAmt()
     + "\nTotal Salary: R" + e.getnewSal());
}

     salary = Double.parseDouble(JOptionPane.showInputDialog(null, "Pleasse enter the saalary to be increased."));
Details e =new Details (idNum, name, surname, salary, incAmt, newSal);
e.getUpdatedSalary();

这很难解释,但你应该弄清楚你为什么需要这样做。


推荐阅读