求为什么执行不下去
public class MemonicaList {Element element[] = new Element[53] ;
public void initMemonicaList(){
String cardList[] = {" ","C4","H2","D7","C3","H4","D6","SA","H5","S9","S2",
"HQ","D3","CQ","H8","S6","S5","H9","CK","D2","HJ",
"S3","S8","H6","C10","D5","DK","C2","H3","D8","C5",
"SK","DJ","C8","S10","HK","CJ","S7","H10","DA","S4",
"H7","D4","CA","C9","SJ","DQ","C7","SQ","D10","C6",
"HA","D9"};
for( int i = 0 ; i <= 52 ; i++ )
{
element[i].initElement( i , cardList[i] );//这里无法执行
}
}
}
public class Element {
int number;
String card;
boolean tag ;
Element()
{
this.number = 0;
this.card = " ";
this.tag = false;
}
public void initElement(int initnumber, String initCard)
{
number = initnumber;
card = initCard;
tag = false;
}
public void answerCorrect(){
this.tag = true;
}
} class --------------------编程问答-------------------- 在它前面加一句
element[i] = new Element();
你的element没初始化 --------------------编程问答-------------------- 谢谢,
多问一下,new Element[53] 为什么没有调用构造方法 Element()
如何在定义Element数组时就将他初始化呀 --------------------编程问答--------------------
定义一个数组参数的构造函数 --------------------编程问答-------------------- 非常感谢对菜鸟无私的帮助 --------------------编程问答-------------------- Element element[] = new Element[53] ;
这句话执行后生成了53个东西 不是53个new Element()而是53个Element element
是53个栈内存中的引用 不是堆内存中的53个对象 如果真会调构造方法的话 如果你定义有参构造却没显示定义无参构造 那Element element[] = new Element[53] 怎么传参数给构造? --------------------编程问答-------------------- 这个就是方法的重载 如果你想new Element(53) 的时候 调用Element() 方法 就要 设置这个方法的参数 ,一般的我们在new Object() 的时候 如果你没指定参数 那么一般都是调的那个带空的参数的方法 --------------------编程问答-------------------- 接分,,呵呵,!!!!!!
补充:Java , Java SE