java编程思想第07章复用类.ppt
还剩
65页未读,
继续阅读
下载文档到电脑,马上远离加班熬夜!
亲,很抱歉,此页已超出免费预览范围啦!
如果喜欢就下载吧,价低环保!
内容要点:
习题习题★★ P130:习题:习题 5、习题、习题 7P138:习题:习题 15P147:习题:习题 23⑵⑵ 当基类对象创建完毕,接下来要创建的是派生类当基类对象创建完毕,接下来要创建的是派生类对象对象◆◆ 仍然按照初始化的第一基本原则进行仍然按照初始化的第一基本原则进行◆◆ 即:首先进行自动初始化,再指定初始化,最后即:首先进行自动初始化,再指定初始化,最后利用构造器进行初始化利用构造器进行初始化3、到现在为止,必要的类都已经加载完毕,可以、到现在为止,必要的类都已经加载完毕,可以开始创建对象了开始创建对象了⑴⑴ 首先创建基类对象(按照首先创建基类对象(按照 初始化第一基本原则初始化第一基本原则 ))◆◆ 先进行自动初始化:对象中的所有基本类型都会先进行自动初始化:对象中的所有基本类型都会被设为默认值,而对象引用设为被设为默认值,而对象引用设为 null◆◆ 其次,进行指定初始化其次,进行指定初始化◆◆ 最后,调用基类的构造器进行初始化最后,调用基类的构造器进行初始化2、向上加载到根基类、向上加载到根基类◆◆ 首先执行根基类中的首先执行根基类中的 static初始化初始化 ,然后是它的,然后是它的导出类,以此类推导出类,以此类推⑴⑴ 因为做的原因在于:导出类的因为做的原因在于:导出类的 static初始化可能初始化可能会依赖于基类成员能否被正确初始化会依赖于基类成员能否被正确初始化⑵⑵ 这也再次证明了这也再次证明了 初始化第二基本原则初始化第二基本原则 的推论:的推论:静态初始化是在类的加载时期完成的静态初始化是在类的加载时期完成的★★ 解释:假设在解释:假设在 Java上运行上运行 Beetle1、首先访问、首先访问 Beetle.main()方法(()方法( static方法)方法)◆◆ 加载器开始启动并找出加载器开始启动并找出 Beetle类的编译代码类的编译代码◆◆ 加载过程中,编译器注意到它有一个基类,于是加载过程中,编译器注意到它有一个基类,于是继续加载基类(如果基类上还有其自身的基类,继续加载基类(如果基类上还有其自身的基类,继续加载,以此类推)继续加载,以此类推)★★ public class Beetle extends Insect{ private int k=printInit(( “....”););public Beetle()(){ print(( “k=” + k);); print(( “j=”+j);); }private static int x2=printInit(( “.....”););public static void main(( String[] args)){ print(( “Beetle constructor”););Beetle b=new Beetle();(); }}★★ class Insect{ private int i=9;;protected int j;;Insect()(){ print(( “i=” + i + “j=” + j););j=39;; }private static int x1=printInit(( “.....”););static int printInit(( String s)) { print(( s);); return 47;; }}七、初始化及类的加载七、初始化及类的加载★★ Java的加载方式与的加载方式与 C/C++不一样不一样◆◆ 每个类的编译代码都存在于它自己独立每个类的编译代码都存在于它自己独立的文件中,的文件中, 该文件只有在需要使用程序该文件只有在需
发表评论
暂无评论,赶快抢占沙发吧。