摘要: 构造器不具有多态性(它们是static方法,只不过该static声明是隐式的),但还是非常有必要理解构造器怎样通过多态在复杂的层次结构中运作,这一理解将有助于大家避免一些令人不快的困扰。 在main中创建对象调用构造器的顺序: 1 //: polymorphism/Sandwich.java 2 / 阅读全文
posted @ 2017-02-10 14:48 Apollo_zhanghongbo 阅读(322) 评论(0) 推荐(0) 编辑
摘要: 总结一下对象的创建过程,假设有一个名为Dog的类: 1. 即使没有显示地使用static关键字,构造器实际上也是静态的方法,因此,当首次创建类型为Dog的对象时(构造器可以看成静态方法),或者Dog类的静态方法/静态域首次被访问时,java解释器必须查找类的路径,以定位Dog.class文件。 2. 阅读全文
posted @ 2017-02-10 10:36 Apollo_zhanghongbo 阅读(258) 评论(0) 推荐(0) 编辑
摘要: 先初始化主类中的静态数据,如果要用其他类来定义对象,则初始化对应的其他类。 实例化对象时,先初始化定义为static的数据,接着调用父类的构造函数(如果有父类),再初始化定义为非static的数据,最后调用该类的构造函数。见http://www.cnblogs.com/HITSZ/p/6385271 阅读全文
posted @ 2017-02-10 10:24 Apollo_zhanghongbo 阅读(292) 评论(0) 推荐(0) 编辑
摘要: 三种情况:final数据、方法和类 一、final数据 一个永不改变的编译时常量。(编译时常量必须是基本数据类型,必须在这个常量定义时赋值) 一个在运行时被初始化的值,而不希望它被改变。 对于基本类型,final使数值恒定不变;对于对象引用,final使引用恒定不变,然而对象其自身却是可以被修改的。 阅读全文
posted @ 2017-02-10 09:11 Apollo_zhanghongbo 阅读(288) 评论(0) 推荐(0) 编辑