构造代码块与构造函数

class Animal
{
  String name;
   
public Animal(int age){
   this.age = age;
}
{  age = 19; }

int age = 20;
}

这个成员变量age最后等于多少就看在创建Aniaml对象时调用Animal(int age)时传给形参的值,因为这里的代码块和后面的age = 20;初始化会分别放在构造代码块的最前面执行,在这种情况下,我们在反编译时可以看出,这个构造函数是这样的:

 

class Animal
{
  String name;
  int age;//成员变量的声明在编译时会被放在最前面
   
public Animal(int age){
   age = 19;    //成员变量的初始化和构造代码块都会放在构造函数中来执行,不过究竟谁在前就看他们代码写的位置的先后
   age = 20
   this.age = age;
}



}

 

posted @ 2016-11-24 20:33  zailushan  阅读(163)  评论(0编辑  收藏  举报