对象及继承的初始化

1、对象的初始化

        (1)静态对象的初始化
  程序中主类的静态变量会在main方法执行前初始化,仅初始化一次。
     不仅第一次创建对象时,类中的所有静态变量都初始化,并且第一次访问某类(注意此时未创建此类对象)的静态对象时,所有的静态变量也要按它们在类中的顺序初始化。
 
  (2)非静态对象的初始化
  在创建对象时,对象所在类的所有数据成员会首先进行初始化。
  基本类型:int 型,初始化为0。
  如果为对象:这些对象会按顺序初始化。
  ※在所有类成员初始化完成之后,才调用本类的构造方法创建对象。
  构造方法的作用就是初始化。

  2、继承时,对象的初始化过程
  (1)主类的超类由高到低按顺序初始化静态成员,无论静态成员是否为private。
  (2)主类静态成员的初始化。
  (3)主类的超类由高到低进行默认构造方法的调用。注意,在调用每一个超类的默认构造方法前,先进行对此超类进行非静态对象的初始化。
  (4)主类非静态成员的初始化。
  (5)调用主类的构造方法。

public class ClassA {
	private String i;
	private static String j; 
	
	{
		i = "A";
		System.out.println(i);
	}
	
	static{
		j = "SA";
		System.out.println(j);
	}
	
	public ClassA(){
		System.out.println("CA");
	}
}

public class ClassB extends ClassA{

	private String i;
	private static String j; 
	
	{
		i = "B";
		System.out.println(i);
	}
	
	static{
		j = "SB";
		System.out.println(j);
	}
	
	public ClassB(){
		System.out.println("CB");
	}
	public static void main(String[] args) {
		new ClassB();

	}

}


结果:

SA
SB
A
CA
B
CB

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值