public class example {
private int a[];
a[] = new int[3]; public static void main(String[] args) {
example example = new example();
}
}
上面的数组声明为什么会是错误的?为什么不能在方法体外进行动态初始化,不能给数组元素赋值?
private int a[];
a[] = new int[3]; public static void main(String[] args) {
example example = new example();
}
}
上面的数组声明为什么会是错误的?为什么不能在方法体外进行动态初始化,不能给数组元素赋值?
example example = new example();里面的第二个example改成其他合法名称看看,上面好象你直接用
private a[]=new int[3];
这样就可以了。
new关键字它的功能是分配一个新内存。
你先private a[];
这样已经为a[]提供了内存,然后你对他初始化的时候就不应该再分配内存了吧。但是在方法内是可以的。因为当调用方法的时候,你给a[]分配内存时候a[]的原来内存会被回收据我了解是这样的 不知道各位高手怎么看
public class Test {
static private int a[];
static {
a = new int[3];
} public static void main(String[] args) {
Test example = new Test();
}
}
如果每个对象你都要他运行,你必须
public class Test {
private int a[];
public Test(){
a = new int[3];
} public static void main(String[] args) {
Test example = new Test();
}
}
写在构造函数里
深圳java程序员博客,为你提供多方面资料http://drivemewild.blogchina.com
static{
a = new int[3];
} public static void main(String[] args) {
Object example = new Object();
}
这样就可以了
private int a[];
a[] = new int[3]; public static void main(String[] args) {
example example = new example();
}
}
在java中,除了变量定义和静态块以外其它的语句必须写到方法体内。
所以a[] = new int[3];
是错误的,
还有,a[] 不是一个对象引用,不能进行赋值,应该:a = new int[3];
example example = new example();
对象引用的名称和类名不能重的。
多看看java的基本语法和面向对象的设计思想吧。
路过接分
确实,最好 example 写成其他名称
习惯好