java在使用Equal方法时遇到问题
这是我在论坛上的第一篇帖子,所以如果我没有在我的第一次尝试中发布所有正确的信息,请原谅我。此外,这是一个课堂作业,所以我不是在寻找任何答案,只是第二组眼睛和建议,我可能做错了什么。我试图用相等的方法来比较两名职员的工资与各自的产出(相等或不相等)。我遵循课堂上给出的例子,但我显然做错了什么,因为一个工资是35k,另一个是30k,所以我的产出应该是“不相等的”。我已经为任何能够给我一些建议的人提供了Clerk类和test类。先谢谢你
public class Clerk extends Person {
private int salary;
private String grade;
public Clerk(String name, String address, String telephone, String email, int Salary, String grade) {
super(telephone, address, name, email);
setSalary (salary);
setGrade (grade);
}
public boolean equals(Object obj) {
if (!(obj instanceof Clerk)) {
return false;
}
boolean result = false;
if (this.salary == ((Clerk) obj).getSalary()) {
result = true;
}
return result;
}
public int getSalary() {
return salary;
}
public void setSalary(int salary) {
this.salary = salary;
}
public String getGrade() {
return grade;
}
public void setGrade(String grade) {
this.grade = grade;
}
public String toString() {
String result;
result = super.toString() + " Salary:" + salary + " Pay Grade:" + grade;
return result;
}
}
public class Test {
public static void main(String[] args) {
Clerk james = new Clerk("J Bishop", "St. Cloud, FL", "407-555-0000","jbiz@aol.com", 35000, "G5");
Clerk jose = new Clerk("Jose Gonzalez", "Orlando, FL", "407 555 9999","jgonz@vcc.edu", 30000, "G4");
if (jose.equals(james)) {
System.out.println("Jose and James are equal");
} else {
System.out.println("Jose and James are NOT equal");
}
System.out.println(jose);
System.out.println(james);
}
}
# 1 楼答案
小心帽子
(
Salary
vssalary
)顺便说一句,非常好的帖子,所有我们需要的信息和代码。欢迎来到stackoverflow:)
# 2 楼答案
在您的职员构造函数中:
您的薪资参数如下所示:
int Salary
但是你用
setSalary (salary);
现在,您在setSalary中使用的工资是类变量。该类变量的默认值为0,因此您雇用的每个职员的薪资都设置为0。因此,他们都是平等的
使工资小写