建了两个类,却无法运行,请赐教我的想法哪里错了
第一个文件:Card.javapackage Pig;
public class Card { public int CardNum;
public Card(int i)
{
CardNum=i;
}
}第二个文件:PlayCard.javapackage Pig;import java.util.Vector;
public class Playcard { static Vector <Card> cards=new Vector();//创建一个静态VECTOR
public Playcard()
{
for(int i=0;i<52;i++)
{
cards.addElement(new Card(i));添加52个Card类
}
}
public static void main(String[] args)
{
System.out.println(cards.elementAt(1).CardNum);
//打印每个Card里面的CardNum属性
}
}报错:
init:
deps-jar:
compile-single:
run-single:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1 >= 0
at java.util.Vector.elementAt(Vector.java:427)
at Pig.Playcard.main(Playcard.java:29)
Java Result: 1
成功生成(总时间:0 秒)
研究了一下午,无法找到问题根源,请赐教.
第一个文件:Card.javapackage Pig;
public class Card { public int CardNum;
public Card(int i)
{
CardNum=i;
}
}第二个文件:PlayCard.javapackage Pig;import java.util.Vector;
public class Playcard { static Vector <Card> cards=new Vector();//创建一个静态VECTOR
public Playcard()
{
for(int i=0;i<52;i++)
{
cards.addElement(new Card(i));添加52个Card类
}
}
public static void main(String[] args)
{
System.out.println(cards.elementAt(1).CardNum);
//打印每个Card里面的CardNum属性
}
}报错:
init:
deps-jar:
compile-single:
run-single:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1 >= 0
at java.util.Vector.elementAt(Vector.java:427)
at Pig.Playcard.main(Playcard.java:29)
Java Result: 1
成功生成(总时间:0 秒)
研究了一下午,无法找到问题根源,请赐教.
调用 System.out.println(cards.elementAt(1).CardNum);
的时候,并没有创建对象Playcard,
因而:
for(int i=0;i <52;i++)
{
cards.addElement(new Card(i));添加52个Card类
} 也不会执行。要想其得到执行,可这样修改main方法:
public static void main(String[] args)
{
Playcard p = new Playcard();
System.out.println(cards.elementAt(1).CardNum);
//或者:
//System.out.println(p.cards.elementAt(1).CardNum);
//打印每个Card里面的CardNum属性
}
你....你的代码没有创造PlayCard对象,你让他的构造函数怎么执行啊,怎么添加啊...你要这么改就可以了
public class PlayCard
{
static Vector <Card> cards=new Vector();//创建一个静态VECTOR
static
{
for(int i=0;i <52;i++)
{
cards.addElement(new Card(i));//添加52个Card类
}
}
public static void main(String[] args)
{
System.out.println(PlayCard.cards.size());
//打印每个Card里面的CardNum属性
}
或者是
public static void main(String[] args)
{
PlayCard pc=new PlayCard();
System.out.println(PlayCard.cards.elementAt(1).CardNum);
//打印每个Card里面的CardNum属性
}
总之,我一看到Vector,Stack,Hashtable等过时的类就很反感。