java(十一)【面向对象】对象的初始化过程
Persondemo.java
1 public class Persondemo { 2 public static void main(String[] args) 3 { 4 Person p= new Person("zhangdan",20); 5 } 6 }
Person.java
1 public class Person { 2 private String name="123"; 3 private int age; 4 private static String country="cn"; 5 Person(String name,int age) 6 { 7 this.name=name; 8 this.age=age; 9 } 10 //构造代码块 11 { 12 System.out.println(name+".."+age); 13 } 14 public void setname(String name) 15 { 16 this.name=name; 17 } 18 public void speak() 19 { 20 System.out.println(this.name+"..."+this.age); 21 } 22 public static void show() 23 { 24 System.out.println("country="+country); 25 } 26 }
运行结果:
这句话都做了什么事情?Person p= new Person("zhangdan",20);
1.因为new用到了Person.class,所以会先找到Person.class文件并加载到内存中
2.执行该类中的static代码块,如果有的话,给Person.class类初始化
3.在堆内存中开辟空间,分配内存地址
4.在堆内存中建立对象的特有属性,并进行默认初始化
5.对属性进行显示初始化
6.对对象进行构造代码块初始化
7.对对象进行对应的构造函数初始化
8.将内存地址付给栈内存中的p变量


浙公网安备 33010602011771号