实例变量属于Java本身,每次程序在创建Java对象时都需要为实例变量分配内存空间,并执行初始化。
从语法角度看,程序可以在3个地方对实例变量执行初始化:
A. 定义实例变量时指定初始值
B.非静态初始化块中对实例变量指定初始值
C.构造器中对实例变量指定初始值
其中A、B方式比C方式更早执行。
程序清单:
public class InitTest {
public static void main(String[] args) {
Cat cat = new Cat("xiaohei",1); //1
System.out.println(cat);
Cat cat1 = new Cat("xiaobai",2); //2
System.out.println(cat1);
}
}
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;