class Cat
    {
                public int age;
                 public Cat()
                 {
                         age=100;
                 }
   }
会被解释成这样执行

解决方案 »

  1.   

    class Cat
        {
                    public int age=100;
                     public Cat()
                     {
                             age=0;
                     }
       }然后结果又等于0 了
      

  2.   

    class Cat
         {
                     public int age=100;
        }
    编译器会编译为
    class Cat
         {
    public Cat() { age = 100; }
                     public int age;
        }而
    class Cat
        {
                    public int age=100;
                     public Cat()
                     {
                             age=0;
                     }
       }
    编译器会编译为
    class Cat
         {
    public Cat() { age = 100; age=0; }
                     public int age;
        }
      

  3.   

    默认构造函数什么都没做,编译器不会随便乱解释。至于你的那个“public int age=100;”的定义是初始化变量定义,优先于任何构造函数的执行。就是好比我们使用一个变量前必须定义它,这个定义是最优先的动作,而这个赋值又是在定义时赋值,自然是仅次于定义执行的,至于构造函数,那个是最后才会去执行的,如果里面什么都不写,空的,那就是最后什么都不去执行而已。
      

  4.   

    public Cat()
    {
        this.age = 100;
        this.age = 0;
    }  
      public Cat()
    {
        this.age = 100;
        this.age = 0;

      

  5.   

    构造函数
    顾名思义,你要在创建类的对象的时候干什么~
    Cat(){你什么都没有干}那么成员本来是怎么定义就按原来的