gpt4 book ai didi

java - 在 Java 中多次使用 "this"关键字

转载 作者:行者123 更新时间:2023-11-29 03:58:24 25 4
gpt4 key购买 nike

所以,我有这个。它比较两副卡片组,如果它们相同,则结果为真。

public boolean equals ( Object obj ) {
boolean result = true;
for (int i = 0; i < 52; i++) {
if (this.cardAt(i) = this2.cardlist(i)) {
result = true;
} else {
result = false;
}
}
}

如果你愿意的话,我希望能够比较两个随机的牌组。但我不知道如何使用“this”来比较两个不同的。我简单地写了“this2”来替换“this”的另一个实例。我可以做些什么来替换这个“this2”以仍然能够比较两个卡片组?

最佳答案

obj 是你的 this2

考虑这种改编:

public boolean equals ( Object obj) {
if(!obj instanceof Deck) return false; // make sure you can cast
Deck otherDeck = (Deck)obj // make the cast
for (int i = 0; i < 52; i++) {
if (!this.cardAt(i).equals(otherDeck.cardAt(i)) // use .equals() instead of ==
return false; // return false on the first one that's wrong
}
return true;

}

您的旧方法会有缺陷。假设有一副 4 张牌:{ 4S, 3C, 5D, 啊}和另一个 4 张卡片组{ 4S, 10C, 5D, AH}

遍历它们

result = true
current index 0... compare 4S to 4S... good, so...
result = 4S == 4S ? true
result = 3C == 10C ? false
result = 5D == 5D ? true
result = AH == AH ? true

所以你的方法只测试最后一张牌是否正确。 (完成后它也永远不会返回!)

关于java - 在 Java 中多次使用 "this"关键字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5025592/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com