java - 需要帮助调用其他类的方法
问题描述
我还是 java 新手,我正在努力让这个程序为我的任务工作。
这是问题:
Jeff 在您附近经营一家当地零售店。他与您签约创建一个交互式应用程序,以帮助他提高员工工资。创建一个名为 Details 的类,该类将包含员工 ID 号、名字、姓氏和薪水的 get 和 set 方法。包括一个名为 getUpdatedSalary() 的方法,它将员工的薪水提高 10%。在您的主类中包含一个名为的静态方法printDetails()
,该方法将生成员工详细信息报告,还包含一个名为的静态方法salaryDeductions()
,该方法将在需要时显示员工扣除报告。
(我知道我没有做过salaryDeductions
方法)
它正确输出所有内容,直到incAmt
and 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;
}
}
解决方案
记住这些事情。方法只有在被调用时才会执行。您还没有调用 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();
这很难解释,但你应该弄清楚你为什么需要这样做。
推荐阅读
- reactjs - 根据反应虚拟化表中的条件为列单元格文本添加颜色
- jenkins - 如何让 Jenkins 在从 bitbucket 轮询后自动构建,而不是手动构建具有特定参数的作业
- android - Xamarin Android 应用程序流量有时不会出现在 Charles Proxy 上
- excel - 使用 OleDbConnection 时忽略空单元格或空单元格?
- python - 虽然应该有,但在字符串中找不到匹配项
- python-3.x - KeyError: 'access_token' 在 OAuth 2.0 身份验证期间使用 Spotify API
- elasticsearch - ElasticSearch 的重新索引 api 完成后,我的目标索引的状态是什么?
- unity3d - 如何使特定的预制件在按下按钮时旋转?
- javascript - 使用 Firestore REST API 在结构化查询中设置“orderBy”
- java - Spring 将 fixedRateString 安排为 Duration