public class Deom {
int a[]=new int[100];
a[0]=1234;
a[1]=1234;
a[2]=1234;
}
上面的写法是会报错的!!!
该段代码没有在任何方法体内,是永远不会执行的,所以java在编译的时候就提示出错。不光数组,就是其它的任何类型也不能这样赋值。
赋值是一种操作,不在方法体中,是不能执行的。
当然,定义的同时初始化赋值是可以的。
还有一种方法,使用静态代码块的手段执行。
public class Deom {
int a[]=new int[100];
{
a[0]=1234;
a[1]=1234;
a[2]=1234;
}
}
这种写法是java的静态块,与写在构造中差不多,但静态块会在构造执行前执行。静态块只要写在变量定义的一后面就可以,与你变量的定义没有关系。
学了java那么长时间,竟然没注意过这个问题,在别人的错误写法下才发现。