java 类中的定义数组后赋值报错

来源:百度知道 编辑:UC知道 时间:2024/05/22 14:39:43
public class Deom {

int a[]=new int[100];

a[0]=1234;
a[1]=1234;
a[2]=1234;

}

定义一个Deom类,在类中定义一个长度为100的数组,后赋值报错,为什么?

改成如下就正确且可使用,为什么?

public class Deom {

int a[]=new int[100];
{
a[0]=1234;
a[1]=1234;
a[2]=1234;
}
}

public class Deom {

int a[]=new int[100];
{
a[0]=1234;
a[1]=1234;
a[2]=1234;
}
}

这种写法是java的静态块,与写在构造中差不多,但静态块会在构造执行前执行。静态块只要写在变量定义的一后面就可以,与你变量的定义没有关系。
// 静态块示例1
public class Deom {

int a[]=new int[100];
int b[]=new int[100];

{
a[0]=1234;
a[1]=1234;
a[2]=1234;
}
}

//静态块示例2
public class TimeView
{
int a[] = new int[10];

public TimeView() {
System.out.println("a[0] = " + a[0]);
}

{
a[0] = 1;
}
}
在示例2中会打印出
a[0] = 1
,你可以试试一下。

该段代码没有在任何方法体内,是永远不会执行的,所以java在编译的时候就提示出错。不光数组,就是其它的任何类型也不能这样赋值。
a[0]=1234;
a[1]=1234;
a[2]=1234;

而下面这段代码在声明的地方赋值:java 会再初始化类的时候分配地址,所以可以执行。
int a[]=new int[100];
{
a[0]=1234;
a[1]=1234;
a[2]=1234;
}

同学你的 deom 写错了,demo

你的问题俺解决不了。。。

不过关注一哈