实例变量的初始化时机

来源:互联网 发布:音乐截取软件 for mac 编辑:程序博客网 时间:2024/06/02 17:08
public class Cat {
String name;
int age;

public Cat(String name,int age){
System.out.println("执行构造器");
this.name = name;
this.age = age;
}

{
System.out.println("执行非静态初始化块");
weight = 2.0;
}

double weight = 2.3;

@Override
public String toString() {
return "cat name="+name+"age="+age+"weigth="+weight;
}

public static void main(String[] args) {

// 执行非静态初始化块
// 执行构造器
// cat name=kittyage=2weigth=2.3
// 执行非静态初始化块
// 执行构造器
// cat name=kitty2age=2weigth=2.3


Cat cat = new Cat("kitty", 2);
System.out.println(cat);
Cat c2 = new Cat("kitty2", 2);
System.out.println(c2);

}


总结:实例变量的初始化时机中,基本有三种: 1.构造器的初始化    2.定义实例变量指定初始值  3.非静态方法区的初始化   

             其中,2,3两种初始化先于构造器执行,执行顺序和它们在类中的定义顺序有关

       

0 0
原创粉丝点击