int sum = 0;
for (int i = 0; i < 5; i++) {
Card c = deck.deal();
System.out.println("Got card " + c.getName());
sum += c.getValue();
}
我不明白行Card c = deck.deal();
。
卡片是一个不同的类,卡片是main()
中的一个对象,deal()
属于不同的类。
import java.util.Random;
public class Deck {
int Cnumb;
int Cname;
String cardName[] = new String[5];
int cardNum[] = new int[14];
public void init(){
cardName[0] = "";
cardName[1] = "Heart's";
cardName[2] = "Diamond's";
cardName[3] = "Spade's";
cardName[4] = "Club's";
cardNum[0] = 0;
cardNum[1] = 1;
cardNum[2] =2;
cardNum[3] =3;
cardNum[4] =4;
cardNum[5] =5;
cardNum[6] =6;
cardNum[7] =7;
cardNum[8] =8;
cardNum[9] =9;
cardNum[10] =10;
cardNum[11] =11;
cardNum[12] =12;
cardNum[13] =13;
}
public void shuffle(){
Random rnd = new Random();
// Random Card
Cnumb = rnd.nextInt(Integer.MAX_VALUE) % 13;
Cnumb = Cnumb + 1;
Cname = rnd.nextInt(Integer.MAX_VALUE) % 4;
Cname = Cname + 1;
}
public Card deal(){
String Suit = cardName[Cname];
int Rank = cardNum[Cnumb];
//return ; // here is the problem
}
}
答案 0 :(得分:0)
卡片是一个课程,你是对的。这行代码返回一个卡片对象:
deck.deal();
Deck是另一个包含所有卡片的类,它包含一个名为deal的方法,可以返回一张卡片。
修改:您遇到两个问题,您的方法deal()
会被写入以返回卡片object
,但您已将卡片声明为{{1} } array
。它会导致错误。
答案 1 :(得分:0)
似乎Card
类中的方法返回了类Deck
,该类称为deal
。我们无法确切地看到你所要求的东西,但这是对正在发生的事情的基本解释。
如果您想了解有关面向对象编程如何工作的更多信息,请参阅Brian Will的优秀教程:YouTube Video。