java数组赋值(急!!!)

package com.Test;
public class SuZhu {
int[] anArray;
anArray=new int[10];
}
为什么我这样定义会报错?

package com.Test;
public class SuZhu {
int[] anArray=new int[10];
}
而我这样定义确是正确?请问跟上面的有什么却别吗?

public class SuZhu {
public static void main(String[] args){
int[] anArray;
anArray=new int[10];
}
}
为我在main函数里仿造第一个在类里定义数组确实正确的?我是在搞不懂..求助!!!sos.........

最后一问:
package com.Test;
public class SuZhu {
public int[] anArray;

public SuZhu(){

}
public static void main(String[] args){
SuZhu aa=new SuZhu();
aa.anArray=new int[10];*/
aa.anArray = {1,2,2,1,1,1,1,1,1,1};//程序说这里有错误
for (int i=0;i<aa.anArray.length;i++){
System.out.println(aa.anArray[i]+" ");
}
System.out.println("计算完成");
}
}
我的类属性有个数组public int[] anArray;,new了对象aa后,怎么在main函数里对aa.Array[]数组进行赋10个值呀,我实验了好多,都错误.

楼上的说法“首先java只可以在class中【声明】成员变量,而不能对变量赋值,”这个是错误的,实际上
可以在定义的时候进行初始化赋值,例如int[] anArray=new int[10]; 但是不可以单独执行赋值语句,例如:int[] anArray; anArray=new int[10]; 看起来这两句没什么差别,但是差别还是很明显的,第一种情况那是定义一个数组变量,同时赋初始值,变量的定义与赋值同时进行,第二种情况是先定义了一个变量,然后再给它赋值,这里是先定义后赋值。之所以第二种情况会报错,是因为java的类定义里面,只能有变量定义、方法定义,不能够单独执行语句体。你要执行语句的话,就必须把要执行的语句放到方法里面去执行例如你在main方法里面那么赋值就不会出问题。不光是赋值语句,其他任何算术运算语句,方法调用语句都不能在类的定义体里面运行的,你不信可以试试。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-09-08
public class TestArray {
int[] anArray = null;
/**
* 这样赋值在java中是不允许的,会判定为语法错误
* 首先java只可以在class中【声明】成员变量,而不能对变量赋值,
* 你只能在方法中(例如:main方法或者其他方法)对变量赋值。
*
* 但是class中允许在声明变量的同时,为变量赋【初始值】。
* 也就是说 int[] anArray2 = new int[10]; 这样是允许的
* 这里的 new int[10] 是初始化操作(不是赋值操作)。
* */
//anArray = new int[10];
static int[] bArray = null;

public void setValue(){
anArray = new int[10]; //这里是可以的,方法内可以赋值。
}

public static void main(String[] args){
//anArray = new int[10];
/**
* 这里是不允许的,因为主方法(即main方法)是静态的(由static修饰)
* 所以如果是静态的成员变量可以赋值,例如 bArray
* 下面的两种方式都是可以赋值的
* */
bArray = new int[10];

bArray = new int[]{1,2,2,1,1,1,1,1,1,1};
}
}
第2个回答  2013-09-08
你初始化的时候没有实例化,哥们。。。
相似回答