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

解决方案 »

  1.   

    在它前面加一句
     element[i] = new Element();
    你的element没初始化
      

  2.   

    谢谢,
    多问一下,new Element[53]  为什么没有调用构造方法 Element()
    如何在定义Element数组时就将他初始化呀
      

  3.   

    Element element[] = new Element[53] ;
    这句话执行后生成了53个东西 不是53个new Element()而是53个Element element
    是53个栈内存中的引用 不是堆内存中的53个对象 如果真会调构造方法的话 如果你定义有参构造却没显示定义无参构造 那Element element[] = new Element[53] 怎么传参数给构造?
      

  4.   

      这个就是方法的重载 如果你想new Element(53) 的时候 调用Element() 方法 就要 设置这个方法的参数 ,一般的我们在new Object() 的时候 如果你没指定参数 那么一般都是调的那个带空的参数的方法