我有两个简单的类,Card
和CardTester
。 Card
中的一种方法检查两张卡是否相等。
但是,当使用matches()
中的方法CardTester
时,它会返回false
,它应该返回true
。
public class Card {
private String rank;
private String suit;
private int val;
public Card(String cardrank, String cardsuit, int cardval) {
rank = cardrank;
suit = cardsuit;
val = cardval
}
public boolean matches(Card a) {
if (this.val == a.val && this.suit == a.suit && this.val == a.val) {
return true;
}
else {
return false;
}
}
在另一个类中调用该方法:
public static void main(String[] args){
Card c2 = new Card("king", "clubs", 10);
Card c3 = new Card("king", "clubs", 10);
if (c2.equals(c3)) {
System.out.println("Cards are equal");
}
else {
System.out.println("Cards aren't equal");
}
输出最终为"卡片不等于"什么时候它应该是"卡是平等的#34;。
答案 0 :(得分:2)
您必须覆盖equals()
课程中的Card
方法并删除matches()
(请注意您未使用{{} 1}}而不是equals()
方法中的matches()
:
可能的实施:
main