你好,其他程序员。有人可以向我解释这段代码究竟是做什么的吗?启动方法会让我失望(isHigherThan(Card card2)
);除此之外我很好。在java文件的其他任何地方都没有提到card2
。
public boolean isHigherThan(Card card2)
{
boolean result = false;
if (face == card2.getFace())
{
if (suit > card2.getSuit())
result = true;
}
else
{
if (face > card2.getFace())
result = true;
}
return result;
}
由于
答案 0 :(得分:3)
您的isHigherThan
方法可能在Card
类中实现,该类至少具有以下属性:face
和suit
。
此方法可以使用如下:
Card card1 = new Card(/* whatever paremeters your constructor takes*/);
Card card2 = new Card(/* ... */);
boolean res = card1.isHigherThan(card2);
现在,当您在方法中看到face
或suit
时,此属性属于card1
。
因此,当进行此类face == card2.getFace()
比较时,它们基本上将card1
face
与card2
face
进行比较。
答案 1 :(得分:1)
card2
是一个参数,因此它只是方法isHigherThan
的本地参数,这解释了为什么你在文件中的任何其他位置都看不到它。您正在查看的方法可能属于Card类。当调用该方法时,它首先检查卡片的面值以查看它们是否相等(queen == queen)然后比较套装(心脏与钻石)并如果card2
的套装则将返回值设置为true更高。 else语句表示面值不匹配(Jack& Ace),因此如果card2
具有更高的面值,则结果将设置为true。
答案 2 :(得分:1)
它在两种情况下返回true
:
getFace
类的方法Card
返回的值等于某个名为face
的全局变量,并且同一类实例的方法getSuit
返回的值更小而不是名为suit
的全局变量。getFace
类的方法Card
返回的值小于名为face
的全局变量。在任何其他情况下,返回值将为false
。
实际使用它是比较Card
类的两个实例:与其他实例调用其isHigherThan
方法的实例。如果两张牌都有相同的面孔(数字),那么他们就会通过套装进行比较 - 黑桃,红心,俱乐部或钻石。
答案 3 :(得分:0)
isHigherThan(可能)是一种类卡的方法。如果调用它的Card对象的值高于作为参数给出的Card值,它显然会返回true。