public class example {
 
  private int a[];
  a[] = new int[3];      public static void main(String[] args) {
    example example = new example();
  }
}
上面的数组声明为什么会是错误的?为什么不能在方法体外进行动态初始化,不能给数组元素赋值?

解决方案 »

  1.   


     example example = new example();里面的第二个example改成其他合法名称看看,上面好象你直接用
    private a[]=new int[3];
    这样就可以了。
    new关键字它的功能是分配一个新内存。
    你先private a[];
    这样已经为a[]提供了内存,然后你对他初始化的时候就不应该再分配内存了吧。但是在方法内是可以的。因为当调用方法的时候,你给a[]分配内存时候a[]的原来内存会被回收据我了解是这样的    不知道各位高手怎么看
      

  2.   

    如果你希望他在方法外运行一次,可以
    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();
    }
    }
    写在构造函数里
      

  3.   

    好长时间没有看过java了,期待问题的解决,不过我看example example =new example();好像不对呀,可以写成example e1 =new example();
      

  4.   

    上面的回答应该可以解决问题了
    深圳java程序员博客,为你提供多方面资料http://drivemewild.blogchina.com
      

  5.   

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

  6.   

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

  7.   

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

  8.   

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