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变量

 

posted @ 2015-08-28 08:56  花花妹子。  阅读(156)  评论(0)    收藏  举报