站内搜索: 请输入搜索关键词

当前页面: 开发资料首页J2SE 专题一个长久困扰我(菜鸟)的问题,

一个长久困扰我(菜鸟)的问题,

摘要: 一个长久困扰我(菜鸟)的问题,


public class 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了,期待问题的解决,不过我看example example =new example();好像不对呀,可以写成example e1 =new example();


上面的回答应该可以解决问题了




深圳java程序员博客,为你提供多方面资料http://drivemewild.blogchina.com


学习中


怎么解释,要先看楼主原来学的是什么语言了。


树组声明的时候没有指定大小,,你可以直接int[] a= new int[3];


private static int a[];
static{
a = new int[3];
}

public static void main(String[] args) {
Object example = new Object();
}
这样就可以了






方法 与对象同名?



以上回答已解决问题


public class example {

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的基本语法和面向对象的设计思想吧。




我又跑来看JAVA了
路过接分
确实,最好 example 写成其他名称
习惯好


↑返回目录
前一篇: Java面试题
后一篇: 为什么我运行InetAddress.getLocalHost()会出异常?