【发布时间】:2014-06-04 23:45:23
【问题描述】:
我是 Java 新手,当我尝试创建 DeckofCards 类的实例时,我的主函数出现错误。 DeckofCards 类应该是“卡片”对象的私有数组。我认为我的问题出在 DeckofCards 类中,出于某种原因,我认为它不是一个数组?也许我创建错了?
我的主要错误是 '(' 或 '[' 预期 和 需要数组,但已找到 DeckofCards
这是我的主要功能:
public static void main(String[] args) {
Card myCard = new Card(13,1);
System.out.println(myCard.getSuit());
System.out.println(myCard);
DeckofCards myDeck = new DeckofCards; //error here
for(int i=0; i<53; i++) {
System.out.println(myDeck[i]); //second error here
}
}
这是我的 DeckofCards 课程:
public class DeckofCards {
private Card[] deck = new Card[52];
public DeckofCards(){
int i = 0;
for(int s = 1; s<5; s++){
for(int r = 1; r<14; r++){
deck[i].rank = r;
deck[i].suit = s;
i++;
}
}
}
}
如果有人能告诉我我是否遗漏了一些语法或一些很棒的东西!谢谢。
【问题讨论】:
-
“出于某种原因,我认为它不是一个数组” - 好吧,你只是一针见血。使用方法与甲板类中的
Card数组进行交互。 -
用
new DeckofCards()代替new DeckofCards -
注意:要构造一个对象(或实际设置它的参数),您需要调用一个构造函数。构造函数是类的方法(即使您没有明确地编写自己的构造函数,Java 也会为该类提供默认构造函数。)现在您实际上在类中编写了构造函数 (
public DeckOfCards()),请看:是一种方法。要在 Java 中调用方法,您需要输入methodName(arguments)。括号是强制性的,参数不是(例如,您编写的构造函数没有参数)。 -
有人能解释为什么 System.out.println(myDeck[i]) 返回错误吗? System.out.println(myCard) 返回卡片(例如“黑桃 A”)并且 myDeck[i] 不只是一张卡片吗?
标签: java arrays class initialization instance