Java对象创建过程(涉及到组合和继承的情况下)-成员初始化顺序.doc

Java对象创建过程(涉及到组合和继承的情况下)-成员初始化顺序.doc

ID:62033547

大小:32.50 KB

页数:7页

时间:2021-04-15

Java对象创建过程(涉及到组合和继承的情况下)-成员初始化顺序.doc_第1页
Java对象创建过程(涉及到组合和继承的情况下)-成员初始化顺序.doc_第2页
Java对象创建过程(涉及到组合和继承的情况下)-成员初始化顺序.doc_第3页
Java对象创建过程(涉及到组合和继承的情况下)-成员初始化顺序.doc_第4页
Java对象创建过程(涉及到组合和继承的情况下)-成员初始化顺序.doc_第5页
资源描述:

《Java对象创建过程(涉及到组合和继承的情况下)-成员初始化顺序.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、Java对象创建过程(涉及到组合和继承的情况下)-成员初始化顺序 对Java对象的创建过程、成员初始化顺序(尤其是涉及到组合和继承的情况下)作一下梳理总结. java编程思想书中第4章初始化与清理中对Java对象的创建过程总结如下: ﻫ假设有个名为Dog的类 ﻫ当首次创建型为Dog的对象时(构造器可以看成静态方法),或者Dog类的静态方法/静态域首次被访问时,Java解释器必须查找类路径,以定位Dog。class文件。 然后载入Dog.class(这将创建一个Class对象),有关静态初始化的动作都会执行.因

2、此,静态初始化只在Class对象首次加载的时候进行一次。 当你用new Dog()创建对象的时候,首先将在堆上为Dog对象分配足够的存储空间。 ﻫ这块存储空间会被清零,这就自动地将Dog中的所有基本类型数据设置成了默认值(对数字来说就是0,对布尔型和字符型也相同),而引用则被置成了null. 执行所有出现于域定义处的初始化动作。 ﻫ执行构造器。 ﻫ没有涉及到继承的时候,这个过程描述已经很清晰了,那么如果涉及到继承呢,看下面一段示例代码: ﻫJava代码Java代码  // Mouse4j.java     p

3、ackage com.mouse4j。simpletest;     // 静态字段类     class StaticField {         private String s;         StaticField(String s) {             this.s = s;             System。out.println(”I am static field " + s);         }      }     // 与静态字段相对的普通字段     class No

4、rmalField {         private String s;         NormalField(String s) {             this。s= s;             System。out.println("I am mormal field " + s);         }     }     // 特点类     class Characteristic {         private String s;         Characteristic(Str

5、ing s) {             this。s = s;             System.out.println("Creating Characteristic " + s);         }      }     // 描述类     class Description {         // 注释1:在此例中如果用于组合的类中也包含static字段         // public static StaticField dStr = new StaticField(”Descrip

6、tion”);                  // 注释2:在此例中如果用于组合的类中也包含在域定义处初始化         // private NormalField dStr1 = new NormalField("Description");         private String s;         Description(String s) {             this.s = s;             System.out。println(”Creating Descri

7、ption ” + s);         }      }     class Animal {         public static StaticField AnimalStr = new StaticField(”Animal");         private Characteristic c = new Characteristic(”Animal Characteristic”);         private Description d = new Description(”Anima

8、l Description”);         Animal() {             System.out.println("Animal()");         }     }     class Mouse extends Animal{         public static StaticField MouseStr = new StaticField("Mouse”);   

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。