[教育]java 继承、接口与泛型.ppt

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

* * * * * * * * * * * * * * 5.16 匿名类 1.和类有关的匿名类 当使用类创建对象时,程序允许我们把类体与对象的创建组合在一起,也就是说,类创建对象时,除了构造方法还有类体,此类体被认为是该类的一个子类去掉类声明后的类体,称作匿名类。匿名类就是一个子类,由于无名可用,所以不可能用匿名类声明对象,但却可以直接用匿名类创建一个对象。假设Hello是类,那么下列代码就是用Hello的一个子类(匿名类)创建对象: new Hello (){ 匿名类的类体 } 匿名类可以继承类的方法也可以重写类的方法。我们使用匿名类时,必然是在某个类中直接用匿名类创建对象,因此匿名类一定是内部类,匿名类可以访问外嵌类中的成员变量和方法,匿名类不可以声明static成员变量和static方法。匿名类的主要用途就是向方法的参数传值。 例子5-16展示了匿名类的用法,效果如图5-20所示。 * * 2.和接口有关的匿名类 假设Computable是一个接口,那么,Java允许直接用接口名和一个类体创建一个匿名对象,此类体被认为是实现了Computable接口的类去掉类声明后的类体,称作匿名类。下列代码就是用实现了Computable接口的类(匿名类)创建对象: new Computable(){ 实现接口的匿名类的类体 } 如果某个方法的参数是接口类型,那么我们可以使用接口名和类体组合创建一个匿名对象传递给方法的参数,类体必须要实现接口中的全部方法。 例子5-17展示了和接口有关的匿名类的用法,效果如图5.21所示。 * * 5.17 异常类 所谓异常就是程序运行时可能出现一些错误,比如试图打开一个根本不存在的文件等,异常处理将会改变程序的控制流程,让程序有机会对错误作出处理。 当程序运行出现异常时,Java运行环境就用异常类Exception的相应子类创建一个异常对象,并等待处理Java使用try~catch语句来处理异常,将可能出现的异常操作放在try~catch语句的try部分,当try部分中的某个语句发生异常后,try部分将立刻结束执行,而转向执行相应的catch部分. 1.try~catch语句 格式如下: try{ 包含可能发生异常的语句 } catch(ExceptionSubClass1 e){ } catch(ExceptionSubClass2 e){ } 各个catch参数中的异常类都是Exception的某个子类,表明try部分可能发生的异常,这些子类之间不能有父子关系,否则保留一个含有父类参数的catch即可。 例子5-18,给出了try-catch语句 的用法(效果如图5.22所示) * * 2.自定义异常类 我们也可以扩展Exception类定义自己的异常类,然后规定哪些方法产生这样的异常。一个方法在声明时可以使用throws关键字声明抛出所要产生的若干个异常,并在该方法的方法体中具体给出产生异常的操作,即用相应的异常类创建对象,这将导致该方法结束执行并抛出所创建的异常对象。程序必须在try~catch块语句中调用抛出异常的方法。 例5-19中(效果如图5.23所示),用一个方法求偶正数的平方根。我们自己定义了一个异常类,当向该方法传递的参数是负数时发生MyException。 * * 5.18 泛型类 泛型(Generics)是Sun公司在SDK1.5中推出的,其主要目的是可以建立具有类型安全的集合框架,如链表、散列映射等数据结构,关于这一点我们将在第7章讨论。 1.泛型类声明 可以使用“class 名称泛型列表”声明一个类,为了和普通的类有所区别,这样声明的类称作泛型类,如: class AE 其中A是泛型类的名称,E是其中的泛型,也就是说我们并没有指定E是何种类型的数据,它可以是任何对象或或接口,但不能是基本类型数据。 class ChorusE,F{ 泛型类声明时,“泛型列表”给出的泛型可以作为类的成员变量的类型、方法的类型以及局部变量的类型。泛型类的类体和普通类的类体完全类似,由成员变量和方法构成,如 class ChorusE,F{ void makeChorus(E person,F yueqi){ yueqi.toString(); person.toString(); } } * * 2.使用泛型类声明对象 使用泛型类声明对象时,必须要指定类中使用的泛型

文档评论(0)

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

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

1亿VIP精品文档

相关文档