您的位置:首页 > 编程语言 > Java开发

【转】类初始化中实例变量的执行顺序

2016-02-18 16:18 375 查看
原文链接

package com.hfview.extend;
/**
* 从程序语法的角度而言,程序会在三个地方为实例变量进行初始化的工作:
*1.定义实例变量的时候进行初始化

*2.非静态初始化块中对实例变量进行初始化

*3.在构造器中对实例变量进行初始化

* 以上的3种方式中,第一和第二种方式的初始化工作比第3种方式更早执行,
* 而且第一和第二种方式的初始化优先性是一样的,
* 他们谁优先取决于在类(源程序)中的先后顺序
*/
class Cat

{

String name;

int age;

// 使用构造器初始化name,age两个实例变量

public Cat(String name, int age) {

System.out.println("执行构造器");

this.name = name;

this.age = age;

weight = 3.0;
}

{

System.out.println("执行非静态初始化块");

weight = 2.0;

}

// 定义时指定初始值

double weight = 2.3;

public String toString() {

return "Cat[name=" + name + ",age=" + age + ",weigth=" + weight + "]";

}

}

public class InitTest

{
public static void main(String[] args) {

Cat cat = new Cat("kitty", 2);

System.out.println(cat);

}
}


结果

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息