Java中使用int和string参数比较两个对象

Java中使用int和string参数比较两个对象,java,Java,我试图比较同一个类中包含String和Int参数的两个对象 这是我的实验室作业,我试着使用just.equals方法,但没有覆盖它,不起作用,我对如何比较两个对象的字符串和Int参数做了更多的研究。所以我构建了一个覆盖等于,它只对字符串参数起作用,因为我测试了每个参数,Int参数一直返回为True,所以我不确定哪里出错了 更新好了,现在我开始工作了,我试图找出如果名称不同,或者团队名称不同,返回false。我想使用if和else,但嵌套了if-else //这是我用来比较字符串和Int参数的eq

我试图比较同一个类中包含String和Int参数的两个对象

这是我的实验室作业,我试着使用just.equals方法,但没有覆盖它,不起作用,我对如何比较两个对象的字符串和Int参数做了更多的研究。所以我构建了一个覆盖等于,它只对字符串参数起作用,因为我测试了每个参数,Int参数一直返回为True,所以我不确定哪里出错了


更新好了,现在我开始工作了,我试图找出如果名称不同,或者团队名称不同,返回false。我想使用if和else,但嵌套了if-else

//这是我用来比较字符串和Int参数的equals方法。
公共布尔等于(对象o)
{
球员薪酬=(球员)o;
如果(o==这个){
如果(公司团队等于(本团队)){
返回true;
}else if(公司球衣编号==此球衣编号){
返回true;
}
}否则
返回false;
}
//这就是调用Player的方法。
player1.readPlayer();
//提示并读入播放器2的信息
player2.readPlayer();
//比较player1和player2并打印一条消息
//他们是否平等
if(player1.equals(player2))
{
System.out.println(“相同的玩家”);
}否则
{
System.out.println(“不同的参与者”);
}

所以我希望如果名字、球队和球衣号码相同,结果会打印出来,如果三者都不一样,结果会打印出来。取而代之的是,无论Int参数值是多少,这三个参数都以同一玩家的身份打印出来,当我将Int参数灰显时,它实际上显示了相同和不同玩家的结果。

您在等式检查中进行了自我比较:

Player comp = (Player) o;
if (comp.team.equals(this.team))
    return true;
if (comp.jerseyNumber == ((Player) o).jerseyNumber) <== RIGHT HERE
    return true;
根据
comp
变量,我猜您提取了演员阵容,但错过了一个,然后在评论时有点忙

编辑:我还建议使用快速退出,就像这样-否则,如果球队是一样的,但球衣不同,你今天的方式会说他们是同一个人:

Player comp = (Player) o;
if (!comp.team.equals(this.team))
    return false;
if (comp.jerseyNumber != this.jerseyNumber)
    return false;
return true;

您在平等性检查中进行了自我比较:

Player comp = (Player) o;
if (comp.team.equals(this.team))
    return true;
if (comp.jerseyNumber == ((Player) o).jerseyNumber) <== RIGHT HERE
    return true;
根据
comp
变量,我猜您提取了演员阵容,但错过了一个,然后在评论时有点忙

编辑:我还建议使用快速退出,就像这样-否则,如果球队是一样的,但球衣不同,你今天的方式会说他们是同一个人:

Player comp = (Player) o;
if (!comp.team.equals(this.team))
    return false;
if (comp.jerseyNumber != this.jerseyNumber)
    return false;
return true;

哦,有趣的是,我想尝试
java-jerseyNumber==this.jerseyNumber
,它可以工作,但我认为这样更好,并确保它可以检查comp.jerseyNumber。谢谢!:D这对我来说很有效,我仍然在努力学习布尔逻辑并将其应用到编码中,我有一部分要归咎于我自己没有太多的实践,但我编码的动机是bit meh,我真的想提高我在itoh上的技能,我想尝试
java jerseyNumber==this.jerseyNumber
这很有趣,而且很有效,但我认为这样更好,并确保它会检查公司的球衣号码。谢谢!:D这对我来说很有效,我仍然在努力学习布尔逻辑并将其应用到编码中,我有一部分是因为我自己没有太多的练习,但我编码的动机有点小,我真的很想提高我在itOk上的技能,现在我让它起作用了,我试图找出如果名称不同,我会返回false,或者如果团队名称不同。我想使用if和else,但是嵌套了if-else?你说
if(o==this)
--思考一下它的含义。我会调用对象o来比较这个类的参数,对吗?我对terminology不太了解。你的意思是如果(其他对象与此对象是同一个对象),那么结果就是true。(顺便说一下,您还需要检查在尝试
player.equals(“非玩家”)
时发生的情况)我修复了它,它看起来像是
java公共布尔等于(对象o){if(o==this)返回true;player comp=(player)o;if(!comp.team.equals(this.team))返回false;if(comp.jerseyNumber!=this.jerseyNumber)return false;else return true;}
好了,现在我开始工作了,我试图找出如果名称不同,或者团队名称不同,返回false。我想使用if和else,但嵌套if-else?你说
if(o==this)
——想一想这一点的意义。我会调用对象o来与这个类的参数进行比较,对吗?我不太懂术语。你的字面意思是如果(其他对象与这个对象相同),在这种情况下,结果是真的。(顺便说一下,您还需要检查在尝试
player.equals(“非玩家”)
时发生的情况)我修复了它,它看起来像是
java公共布尔等于(对象o){if(o==this)返回true;player comp=(player)o;if(!comp.team.equals(this.team))返回false;if(comp.jerseyNumber!=此.jerseyNumber)返回false;否则返回true;}