类中的访问顺序

class T1{
static{
System.out.println("static");
}
{
System.out.println("构造代码块");
}
T1(){
System.out.println("aaaaa");
}

}

访问结果为:

static

构造代码块

aaaaa


A:一个类的初始化过程
成员变量的初始化
默认初始化
显示初始化
构造方法初始化
还有:静态代码块》构造代码块》构造方法


(2)子类和父类构造

class X {//1
Y b = new Y();
X() {
System.out.print("X");
}
}


class Y {
Y() {
System.out.print("Y");
}
}


public class Test extends X {
Y y = new Y();//2
Test() {
super();
System.out.print("Z");
}
public static void main(String[] args) {
new Test(); 
}
}

结果是YXYZ

过程是main先行,到Test 碰到父类x进入x执行,得到YX

然后执行子类Test得到YZ


看程序写结果:
A:成员变量的问题
int x = 10; //成员变量是基本类型
Student s = new Student(); //成员变量是引用类型
B:一个类的初始化过程
成员变量的初始化
默认初始化
显示初始化
构造方法初始化
C:子父类的初始化(分层初始化)
先进行父类初始化,然后进行子类初始化。

你可能感兴趣的:(类中的访问顺序)