(原)Java初始化过程

先看一个demo,然后进行归纳。

 1 class X{
 2     static M m=new M();
 3     Y y=new Y();
 4     public X(){
 5         System.out.print("X");
 6     }
 7 }
 8 class Y{
 9     public Y(){
10         System.out.print("Y");
11     }
12 }
13 
14 class M{
15     public M(){
16         System.out.print("M");
17     }
18 }
19 
20 class N{
21     public N(){
22         System.out.print("N");
23     }
24 }
25 
26 public class Z extends X{
27     static N n=new N();
28     Y y=new Y();
29     public Z(){
30         System.out.print("Z");
31     }
32     public static void main(String[] args) {
33         new Z();
34     }
35 }

 

 

通过单步调试及查阅相关资料可对Java初始化归纳出以下结论:

1、初始化父类中的静态成员变量和静态代码块。

2、初始化子类中的静态成员变量和静态代码块。

3、初始化父类的普通成员变量和代码块,再执行父类的构造方法。

4、初始化子类的普通成员变量和代码块,再执行子类的构造方法。

转载于:https://www.cnblogs.com/xh0102/p/5815288.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值