class TestCode
{
int a;
a = 10;
TestCode()
{
//this.a = 10;
}
}为什么不能直接在构造方法外赋值,而必须得在代码块或方法内赋值呢?

解决方案 »

  1.   

    因为那里不是写执行代码的地方。
    你可以写成:
    int a = 10;
    或者:
    static int a;
    static { a = 10; }如果要对a赋值,要么写在定义的时候,要么写在方法中,要么写在静态代码段里。
      

  2.   

    成员变量赋值要在声明的同时或者方法内int a=10;可以
      

  3.   

    class TestCode 

    int a= 10; TestCode() 

    //this.a = 10; 


    这样才比较规范
      

  4.   

       这是个值得注意的问题···解释:对成员变量的操作只能放在方法中,方法可以对成员变量和方法中自己定义的局部变量进行操作。在定义类的成员变量时可以同时赋予初值,如:
    class A
       {
          int a=12;
       }
    但是不能这么做:
    class A
      {
         int a;
          a=12;
      }
    因为类体的内容由成员变量的定义和方法的定义两部分组成。如:
    class A
      { 
        int a;
         void f()
         {
            int x;
             x=34;
             a=12+x; 
        }
      }
      

  5.   

    你去问问JAVA之父  James Gosling  这个问题。