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;
}
}
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
你的问题俺解决不了。。。
不过关注一哈