我正在制作一个正在制作两个多米诺骨牌"的程序,它们是随机生成的整数end1
和end2
。 [end1 | end2]
是" domino"的输出。我正在尝试编写一个方法来检查两个Domino是否相同。我希望这个方法equals()
将这个Domino与作为参数传递的Domino进行比较。例如,[4|2]
将等于[2|4]
。我不确定如何比较在不同类中创建的两个对象中的整数。对不起,如果不清楚的话,我很乐意回答任何问题来提供帮助。非常感谢!
public boolean equals(Domino d) {
return (this.end1 && this.end2 == Domino.end1 && Domino.end2 ? true : false);
}
显然,这在语法上是非常错误的,但从概念上讲,它正是我所寻找的。 p>
答案 0 :(得分:1)
您必须将一个Domino的第一端与另一个Domino的第一端进行比较,并将第一端的第二端与另一端的第二端进行比较。如果它们不匹配,则将一个的第一个结束与另一个的第二个结束进行比较,反之亦然。
public boolean equals(Domino d) {
if (this.end1 == d.end1 && this.end2 == d.end2)
return true;
if (this.end2 == d.end1 && this.end1 == d.end2)
return true;
return false;
}
答案 1 :(得分:0)
更简单易读:
public boolean equals(Domino d) {
if ((this.end1 == d.end1 && this.end2 == d.end2) ||
(this.end2 == d.end1 && this.end1 == d.end2))
{
return true;
}
else
{
return false;
}
}
想想你想用英语做什么:
如果
这个end1和Domino的end1是相同的 和 这个end2和Domino的end2是相同的
OR
这个end2和Domino的end1是相同的 和 这个end1和Domino的end2是相同的
RETURN true
ELSE
RETURN false
通常可以更容易地思考如何设置条件