网站大量收购独家精品文档,联系QQ:2885784924

java2教案-read.ppt

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

综合编程举例 例4-25(习题5) 定义一个整型集合类integerSet。这种类型的对象可以存储10个20至80之间的整数,即它的内部有一个整形数组存储数据。编程: (1) 判断两个integerSet类对象S1和S2是否相等。提示:集合相等的前提是所有元素相等。 (2) 输出两个集合对象的交集。 (3) 输出两个集合对象的并集。 (4) 将一个整形数据插入到一个集合对象中。 (5) 从一个集合中删除某一个元素。 (此题程序太长,不讲, 源程序 运行) 关键字final 一般情况下,子类可以继承超类的实例变量和方法; 基于程序效率的考虑,Java提供的final关键字用于控制类不可被继承、实例变量和方法不允许被覆盖; final数据 在实例变量、局部变量和方法的形参定义之前加上final,那么这个变量值只能被引用,而不能修改(常量、常参数)。 final修饰的局部变量和实例变量必须给出初值,因为它修饰的变量代表一个常量。 final修饰的形参在方法体内不能被修改,主要用于修改类类型,防止返回被修改的对象; 例4-16: final变量 源程序 运行 final方法 在方法定义前加上final,该方法就不能被子类覆盖,成为终极方法 ; 包含终极方法的类仍然可以被子类继承,子类虽然不能覆盖超类中的终极方法,但可以重载该方法。 终极方法采用内联调用; 例: final方法 class Base{ final int x=1; ? final void print(int y ){ // 超类中的final方法 System.out.println(x+y); } } ? class Derived extends Base { void print( ){ // 重载了超类中的print方法 System.out.println(x); } } final方法(续) final方法(续) 构造方法不能是终极方法; static和private方法是隐式的final方法; final类 在一个类定义前加上final,意味着这个类就不能被其它类继承,称为终极类。 系统类基本上都是final类,如String类。 将class定义为final是为了杜绝继承,类中的方法自然都变成了终极方法。 例: 终极类 final class Base{ // 声明为final类 final int x=1; ? void print(final int y ){ System.out.println(x+y); } } ? // 错误:不能继承final 修饰的Base类 class Derived extends Base { } final类 (续) 组合与继承 面向对象中的软件重用表现为两种形式: 继承 对象组合 :指类体重包含其它类的对象,即子对象; 继承和组合常常混合使用; 组合与继承混用程序的关键是构造方法:子类构造方法中要调用超类构造方法、对成员对象进行初始化。 组合与继承 (续) 继承时可以在子类构造方法中调用超类的构造方法进行超类子对象的初始化,编译器可以帮助查找初始化的错误信息;但使用组合时,如果用户不进行初始化,系统将对子对象赋默认值(null),程序只能在运行时才可能出现错误,编译器是不能查找这些错误的; 例4-17:组合与继承 源程序 运行 抽象类和抽象方法 用abstract修饰的方法称为抽象方法,抽象方法仅有方法特征,但没有代码; 抽象方法的定义格式: abstract returnType methodName(parameter-list); 含有抽象方法的类称为抽象类,但抽象类不要求一定含有抽象方法 用abstract修饰的类称为抽象类,定义格式: abstract class className extends superclassName{ …… } 抽象类和抽象方法(续) 抽象类不能定义对象,只能作为超类被继承; 抽象类的作用:提供一种适当的超类,子类通过继承实现超类中的抽象方法。 final与abstract是一对矛盾,不能同时用于修饰类和方法; 抽象类采用动态联编,体现了多态性,通过继承可以从抽象类派生出具有相似操作的子类。 抽象类和抽象方法(续) 例4-18:抽象类与覆盖 源程序 运行 对象的类型转换 在Java中,对象的类型转换通常发生在具有继承关系的超类与子类之间; 有两种对象的类型转换 类型向上转换(upcasting) 类型向下转换(downcasting) 向上类型转换 向上类型转换是从子类转换为超类,

文档评论(0)

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

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

1亿VIP精品文档

相关文档