Java程序设计继承.ppt

  1. 1、本文档共73页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Java程序设计继承.ppt

* 5.5 对象包装器与自动打包 对象包装类之间的比较应调用equals方法,而不要使用 == 回忆:什么类也是如此? * 5.5 对象包装器与自动打包 包装器类常见方法 int x = Integer.parseInt(s); //s为String类型,返回字符串表示的十进制数 int intValue(); //以int的形式返回Integer对象的值 static String toString(int i); static Integer valueOf(String s); //返回s表示的整形数值进行初始化后的一个新的Integer对象 注意:其他包装器也有类似方法 * 5.5 参数数量可变的方法 System.out.printf(%d, n); System.out.printf(%d %s, n, widgets); 这使用的是什么技术?是重载吗? 实际的定义: public PrintStream printf(String fmt, Object... args){ return format(fmt, args); } //Object... 相当于 Object[] * 5.5 参数数量可变的方法 public static double max(double... values){ double largest = Double.MIN_VALUE; for (double v:values) if (vlargest) largest = v; return largest; } 这样调用: double m = max(3.1, 40.4, 5); 也可以这样调用 double m = max(3.1, 40.4, 5,12,34,56); * 5.6 继承设计的技巧 1.将公共操作和域放在超类 2.不要使用受保护的属性 子类可能会破坏封装性 同一个包中所有的类都可以访问protected属性 3.使用继承实现is-a关系 错误的设计如下:假设有一个LaserWeapon类,内包含void fire(){destory what you see!;},现有一SuperMan类,其也实现了fire()功能。但是让SuperMan去继承LaserWeapon类,则.... 很冏 * 5.6 继承设计的技巧 4.除非所有继承的方法都有意义,否则不要使用继承。 5.在覆盖方法时,不要改变预期的行为。 6.使用多态,而非类型信息 if ( x is of type 1) action1(x) else if (x is of type 2) action2(x) 改成 定义一个超类,有一个action方法 调用时使用x.action() 7.不要过多地使用反射(较复杂) * 作业-1 问答题(书面) 1.什么是多态?尝试用代码说出多态的几种表现形式?你认为多态和继承之间有什么样的关系? 作业-1 (编程) 2.Employee类及其子类Manager,在main方法中新建若干对象(既有Employee对象也有Manager对象),建立Employee数组存放新建的若干对象, 现希望实现如下功能,如果数组中存放的是Manager对象,则将其bouns打印出来,如何实现。 如果想让Manager类的构造函数中调用Employee类的构造函数怎么实现? 使用代码说明 这段代码中哪里体现多态与继承特性? * * 作业-1(编程) 1.编写一抽象类(Shape),长方形类、三角形类与圆形类均为其子类,并各有各的属性。其父类中有获得其周长、面积的方法。然后在一测试类中,分别建立若干个子对象,并分别将这些对象的所有面积与长度统计输出 针对上面的各子类编写相应的equals,hashCode,toString。 注意:均应放入.shapes包中 编写测试类的时候考虑:使用数组如何实现,使用ArrayList如何实现? * 作业-2 问答题(书面) 1.分析所给Child压缩包内源代码,试回答: .parent包中Child.java文件能否编译通过?哪句会出现错误?试改正该错误。并分析输出结果。 b.在另外一个包中,OutOfParentPackage.java,能否编译通过?提示什么错误?分析原因。如何更改才能使之正常编译?(写不出来正确答案不要紧,但请一定写出思考过程) 2.ListInteger al = new ArrayListInteger(); List al = new ArrayList(); 这两行代码有何区别?哪个好? 3.如何对两个类进行相等测试?直接用==可以吗?为什么?类比较时需要注意哪几点? * 作业(书面)2:面向对象综合设计作业

文档评论(0)

rewfdgd + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档