声明一个类的时候,对于一个成员变量的声明,只能允许两种情况:
1)声明变量(域)的同时初始化该变量
2)声明变量(域),然后在构造器或者方法中初始化如果一句声明变量,一句初始化赋值,那么编译器就会报错,例如:public class Test {
    private int a;
    a = 10;
}请问为什么将声明和初始化分开,这么理所当然的事情,对于java的类成员变量却不允许呢?

解决方案 »

  1.   

    吓我一跳,为什么不可以呢? 没听说过。
    特意试了一下,没问题。你查下其他的问题吧。
    public class TTT
    {
        private int a = 10;
        
        private String s = "";
    }
      

  2.   

    int a;
    {a=10;}可以满足你的要求
      

  3.   

    LZ意思我理解错了。
    对于java这么设计,我是这样理解的:
    java是面向对象的语言,class类抽象为对象。
    Field和Method对应对象的固有属性和行为。
    而赋值和逻辑等操作,则相当于对象的动作,这些动作是和行为对应的,一连串的动作组成特定的行为。
    所以呢,就把动作限定在行为里了。而a=10是一个赋值动作
    private int a = 10 是一个属性的性质。说白了就是设计者当初这么设计了,所以就这样了。