java入门3.30(1)

今日所学:1.回顾昨天所学隐藏、覆盖和动态绑定

2.  对象的初始化顺序
 1>对象被创建的过程
    了解: JVM ( Java虚拟机)   有一个”方法区“  new的时候 JVM会在方法区寻找类class的对象    例如: new People( )  如果找不到 就会到定义classpath 路径里面去找People.class
 2>加载成功后 就可使用该类  对于本包或者导入的包都可以直接new
 3>分配内存空间 : 找到类之后  new之后会在JVM内存中的“堆”里面开辟空间,并且将对象的属性初始化默认值
  4.对象初始化顺序  
 总: 先父类后子类   先静态后实例      先默认值后执行赋值语句
 
 给父类的静态变量赋予默认值
 给子类静态变量赋予默认值
 
 执行父类的静态变量赋值语句
 执行子类的静态变量赋值语句
 
 执行父类静态块 
 执行子类静态块 
 
 给父类实例变量赋初值
 执行父类的实例变量语句
  
 给子类实例变量赋初值
 执行子类实例变量赋值语句
 
 执行父类构造函数
 执行子类构造函数
 
综上, 完成了对象的初始化。

下面截图即代码为对其对象初始化顺序的演示

 

 

public class Testclass {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
       // int a=(int)20.1;//强制转换
		new Student();
	}
	

}
class people{
	int age;//
	static int svar;
	static int sv=20;//赋值语句
	int b=30;//赋值语句
	public people(){
	System.out.println("父类的静态变量 svar="+svar);
	System.out.println("父类的实例变量age="+age);
	System.out.println("执行父类无参构造函数");
		
	}
	static{
		System.out.println("在静态块中查看静态变量的赋值情况,svar="+svar);//验证是否在执行静态块之前静态变量已赋值
		System.out.println("执行父类静态块");
	}
	
}
class Student extends people{
	int id;
	static int svar1;
	public Student(){
		System.out.println("子类的静态变量 svar1="+svar1);
		System.out.println("父类的实例变量id="+id);
		System.out.println("执行子类无参构造函数");
	}
	static{
		System.out.println("在静态块中查看静态变量的赋值情况,svar1="+svar1);//验证是否在执行静态块之前静态变量已赋值
		System.out.println("执行子类静态块");
	}
}

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值