这是我在论坛上发表的第一篇文章,如果我没有在首次复出时发布所有正确的信息,请原谅我。此外,这是一个课堂作业,所以我不是在寻找任何答案,而只是第二组眼睛和建议我可能做错了什么。我试图使用相等的方法来比较两个职员的工资与相应的输出(相等或不相等)。我按照课堂上给出的例子,但我明显做错了,因为一个薪水是35k而另一个是30k所以我的输出应该是"不等于"。我已经包括了Clerk类以及可能能给我一些指针的任何人的测试类。提前谢谢。
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);
}
}
答案 0 :(得分:5)
小心帽!
public Clerk(String name, String address, String telephone, String email, int salary, String grade) {
(Salary
vs salary
)。
btw优秀的帖子,我们需要的所有信息和代码。欢迎来到stackoverflow:)
答案 1 :(得分:0)
在你的Clerk构造函数中:
你的工资参数如下:
int Salary
但您使用
设置薪水 setSalary (salary);
现在你在setSalary中使用的薪水是类变量。该类变量默认为0,因此您所做的每个职员都将工资设置为0.因此它们都是相等的。
使薪水小写