关于静态类,急·~~~~~~~~~~帮帮忙~~~~~~~~~~~~~~~~~~~~~在线等
我设置如下静态类
在另一个类中调用
State cur=new State ();
为什么会说我初始化错?(Exception in thread "main "
java.lang.ExceptionInInitializerError)还要怎么给他初始化?
他还说是因为我
数组越界导致(
java.lang.ArrayIndexOutOfBoundsException: 8
at State. <clinit> (State.java:19)
... 2 more)。。。
到底那里错????!!!!
public class State {
static int [][]a=new int[8][8];
static int [][]aa=new int[4][4];
static //静态初始化器,初始化静态属性
{
for(int i=0;i <8;i++)
for(int j=0;j <8;i++)
{a[i][j]=0;}
for(int i=0;i <4;i++)
for(int j=0;j <4;i++)
{aa[i][j]=0;}
}
public State(){ }
static void seta(int i,int j,int av)//修改静态属性
{
a[i][j]=av;
}
static void setaa(int i,int j,int av)//修改静态属性
{
aa[i][j]=av;
}
}
------解决方案--------------------你的两个for语句中的i改成j就可以了,如下:
for(int i=0;i <8;i++)
for(int j=0;j <8;j++)
{a[i][j]=0;}
for(int i=0;i <4;i++)
for(int j=0;j <4;j++)
{aa[i][j]=0;}
------解决方案--------------------要是想在别的类中调用,因为是静态字段,所以并不需要使用State cur=new State ();语句创建对象,这么调用就行了,State.a[i][j]
------解决方案--------------------State cur=new State ();要用英文符号的