黑马程序员_对象的初始化过程

------- android培训java培训、期待与您交流! ----------
首先创建一个类,通过这个类说明,对象的初始化过程:
class Person{
	private String name;//默认初始化值为null;
	private int age;//默认初始化值为0;
	
	private String test = "hello";//hello是显示初始化的值;
	
	public static String country = "cn";//静态成员变量。
	
	
	
	{//构造代码块
		System.out.println(name+"......."+age+"....."+test);
	}
	
	Person(String name,int age){//构造函数
		this.name = name;
		this.age = age;
	}
	
	public void setName(String name){
		this.name= name;
	}
	public void show(String name,int age){
		System.out.println("name:"+name+"......age:"+age);
	}
	public static void showCountry(){
		System.out.println("country:"+country);
	}
}

public class Demo12 {
	public static void main(String[] args) {
		Person p = new Person("zhangsan",29);
	}
}
通过执行Person p = new Person("zhangsan",29) 这一句代码,讲述对象初始化的过程
1,new 用到了Person.class文件,会先找到Person.class文件,然后将Person.class这个文件加载到内存中;

2,执行Person类中的静态代码块,对Person类进行初始化(在方法区创建一个Person类的空间,并将country和showCountry的数据存入方法区);

3,在堆内存中开辟空间,给对象分配内存地址。

4,在堆内存中建立对象的特有属性(name,age),并进行默认初始化(name=null,age=0,test=null);

5,对属性进行显示初始化(显示初始化后test=hello);

6,对对象进行构造代码块初始化(会打印name=null,age=0,test=hello);

7,对对象进行对应的构造函数初始化(name=“张三”,age=29);

8,将内存地址赋给栈内存的中的p变量。




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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值