第7篇内部类与异常.pptVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第7篇内部类与异常

第7篇 内部类与异常类 1、内部类 Java支持在一个类中声明另一个类,这样的类称作内部类,而包含内部类的类称为内部类的外嵌类。 内部类的外嵌类的成员变量在内部类中仍然有效,内部类中的方法也可以调用外嵌类中的方法。 内部类的类体中不可以声明类变量和类方法。 外嵌类的类体中可以用内部类声明对象,作为外嵌类的成员。 内部类仅供它的外嵌类使用,其他类不可以用某个类的内部类声明对象。 另外,由于内部类的外嵌类的成员变量在内部类中仍然有效,使得内部类和外嵌类的交互更加方便。 需要特别注意的是,Java编译器生成的内部类的字节码文件的名字和通常的类不同,内部类对应的字节码文件的名字格式是“外嵌类名$内部类名” 2、匿名类 2.1 和子类有关的匿名类 创建子类对象时,除了使用父类的构造方法外还有类体,此类体被认为是一个子类去掉类声明后的类体,称作匿名类。 匿名类就是一个子类,由于无名可用,所以不可能用匿名类声明对象,但却可以直接用匿名类创建一个对象。 2.2 与接口有关的匿名类 Java允许直接用接口名和一个类体创建一个匿名对象,此类体被认为是实现了该接口的类去掉类声明后的类体,称作匿名类: new Computable() { 实现接口的匿名类的类体 }; 如果某个方法的参数是接口类型,那么可以使用接口名和类体组合创建一个匿名对象传递给方法的参数,类体必须要重写接口中的全部方法 3、异常类 所谓异常就是程序运行时可能出现一些错误 Java的异常出现在方法调用过程中,即在方法调用过程中抛出异常对象,终止当前方法的继续执行,同时导致程序运行出现异常,并等待处理 3.1 try~catch语句 Java使用try~catch语句来处理异常,将可能出现的异常操作放在try~catch语句的try部分,当try部分中的某个方法调用发生异常后,try部分将立刻结束执行,而转向执行相应的catch部分;所以程序可以将发生异常后的处理放在catch部分。try~catch语句可以由几个catch组成,分别处理发生的相应异常 * * 匿名类可以继承父类的方法也可以重写父类的方法。 使用匿名类时,必然是在某个类中直接用匿名类创建对象,因此匿名类一定是内部类。 匿名类可以访问外嵌类中的成员变量和方法,匿名类的类体中不可以声明static成员变量和static方法。 由于匿名类是一个子类,但没有类名,所以在用匿名类创建对象时,要直接使用父类的构造方法。 尽管匿名类创建的对象没有经过类声明步骤,但匿名对象的引用可以传递给一个匹配的参数,匿名类的常用的方式是向方法的参数传值。 try~catch语句的格式如下: try { 包含可能发生异常的语句 } catch(ExceptionSubClass1 e) { … } catch(ExceptionSubClass2 e) { … } 各个catch参数中的异常类都是Exception的某个子类,表明try部分可能发生的异常,这些子类之间不能有父子关系,否则保留一个含有父类参数的catch即可。 在编写程序时可以扩展Exception类定义自己的异常类,然后根据程序的需要来规定哪些方法产生这样的异常。一个方法在声明时可以使用throws关键字声明要产生的若干个异常,并在该方法的方法体中具体给出产生异常的操作,即用相应的异常类创建对象,并使用throw关键字抛出该异常对象,导致该方法结束执行。程序必须在try~catch块语句中调用能发生异常的方法,其中catch的作用就是捕获throw方法抛出的异常对象 断言语句在调试代码阶段非常有用,断言语句一般用于程序不准备通过捕获异常来处理的错误 使用关键字assert声明一条断言语句,断言语句有以下两种格式: assert booleanExpression; assert booleanExpression:messageException; 其中booleanExpression必须是求值为boolean型的表达式;messageException可以是求值为字符串的表达式。 如果使用 assert booleanExpression; 形式的断言语句,当booleanExpression的值是false时,程序从断言语句处停止执行;当booleanExpression的值是true时,程序从断言语句处继续执行。 如果使用 assert booleanExpression:messageException; 形式的断言语句,当booleanExpression的值是false时,程序从断言语句处停止执行,并输出messageException表达式的值,提示用户出现了怎样的问题;当booleanExpression的值是tru

文档评论(0)

yan698698 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档