Java对象初始化顺序

Java对象初始化:先从代码块开始,再去执行构造函数。

*先初始化父类的静态代码—>初始化子类的静态代码–>初始化父类的非静态代码—>初始化父类构造函数—>初始化子类非静态代码—>初始化子类构造函数*

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
public class objInitial {
private static int nextId;

private int id;
private String name;
private double salary;

public objInitial(){
System.out.println("default initial");
name = "";
salary = 0;
}

public objInitial(String n,double s){
name = "";
salary = 0;
}

{
System.out.println("--");
// nextId++;
id = 5;
// id = nextId;
}

public int getId(){return id;}
public static void main(String[] args) {
objInitial oInitial = new objInitial();

System.out.println(oInitial.getId());
}
}

输出:

1
2
3
--
default initial
5
作者

bd160jbgm

发布于

2021-06-02

更新于

2021-06-03

许可协议