面向对象_对象建立时内存中的变化

建立一个对象在内存中会做什么事

  1.因为new用到了Person.class所以会先找到Person.class文件并加载到内存中
  2.执行该类中的static代码块,如果有的话,给Person.class类进行初始化
  3.在堆内存中开辟空间,分配内存地址
  4.在堆内存中建立对象的特有属性,并进行默认初始化
  5.对属性进行显示初始化
  6.对对象进行构造代码块初始化
  7.对对象进行对应的构造函数初始化
  8.将内存地址赋给内存中的p变量

对象初始化过程:
  先是默认初始化-------显示初始化------构造代码块-------构造函数

 1 public class PersonDemo6 {

 2     public static void main(String[] args) {

 3         Person p = new Person("zhangsan",21);

 4         p.setName("lishi");

 5 

 6     }

 7 }

 8 class Person{

 9     private int age;

10     private String name;

11     

12     {

13         System.out.println("我:name="+name+",,age="+age);

14     }

15     Person(String name,int age){

16         System.out.println("C:name="+name+",,age="+age);

17     }

18 

19 

20     public void setName(String name){

21         this.name = name;

22     }

23     public String getName(){

24         return name;

25     }

26 

27     public void speak(){

28         System.out.println("name="+name+",,age="+age);

29     }

30     public void cry(){

31         System.out.println("cry.......");

32     }

33 }

 

你可能感兴趣的:(面向对象)