我正在尝试比较来自同一类的两个对象,这些对象同时包含 String 和 Int 参数。
这是我的实验室作业,我尝试只使用 .equals 方法而不覆盖它,但没有用,我对如何比较两个对象的 String 和 Int 参数做了更多研究。所以我构建了一个重写等于,它只适用于 String 参数,因为我测试了每个参数,Int 参数一直返回为 True,所以我不确定我哪里出错了。
更新好的,现在我开始工作了,我试图弄清楚如果名称不同或团队名称不同则返回 false。我想过使用 if 和 else 但嵌套 if-else?
//This is my equals method to compare the String and Int parameter.
public boolean equals(Object o)
{
Player comp = (Player) o;
if (o == this) {
if (comp.team.equals(this.team)) {
return true;
} else if (comp.jerseyNumber == this.jerseyNumber) {
return true;
}
}else
return false;
}
//And this is the method that calls on Player.
player1.readPlayer();
//Prompt for and read in information for player 2
player2.readPlayer();
//Compare player1 to player 2 and print a message saying
//whether they are equal
if (player1.equals(player2))
{
System.out.println("Same Players");
}else
{
System.out.println("Different Players");
}
所以我希望结果打印出来,如果姓名、球队和球衣号码相同,则结果打印为相同的球员,或者如果这三者都不同,则结果打印为不同的球员,我想。取而代之的是,无论 Int 参数值如何,它都会将所有三个参数打印为 Same player,当我将 Int Parameter 变灰时,它实际上显示了 Same 和 Different Players 结果。
芜湖不芜
相关分类