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

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

ID:34417188

大小:48.00 KB

页数:8页

时间:2019-03-05

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

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

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     package com.m

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

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

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

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

7、     }     class Animal {         public static StaticField AnimalStr = new StaticField("Animal");         private Characteristic c = new Characteristic("Animal Characteristic");         private Description d = new Description("Animal Description");         An

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

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

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

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