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

Java面向对象程序设计第07章-内部类、异常类、枚举类.pptxVIP

Java面向对象程序设计第07章-内部类、异常类、枚举类.pptx

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

第7章 内部类、异常类、枚举类本章主要内容7.1 内部类7.2 匿名类7.3 异常类7.4 断言7.5 枚举类难点:匿名类、异常类7.1 内部类(InnerClass)内部类:在一个类的内部声明的类包含内部类的类称为外部类(OuterClass)classOuterClass { 成员变量; 方法(){ } classInnerClass{ … … }}7.1 内部类(InnerClass)外部类的修饰符:(回忆)public/默认 abstract/final 内部类的修饰符:public/protected/默认/private abstract/final static 内部类的分类:普通内部类匿名内部类静态内部类7.1.1 普通内部类的使用为何verify()可以访问breed?lengthCow.thiscowbreedtailmain栈区因为非静态内部类的对象里,保存了一个它寄存的外部类对象的引用(Cow.this)。当调用非静态内部类的实例方法时,必须有一个非静态内部类实例,非静态内部类实例必须寄存于外部类实例。7.1.1 普通内部类的编译7.1.2 静态内部类用static声明的内部类为静态内部类静态内部类属于外部类本身,而不属于外部类某个实例7.1.2 静态内部类对象使用静态内部类对象时,不需要和外部类实例绑定而非静态内部类则不同,需要先生成外部类实例7.2 匿名类如果一个类只需要创建一个对象,则可以使用匿名类(本课程中,在图形用户界面时使用比较多)假设已经存在一个父类、抽象类或者接口如果想创建一个子类对象或实现接口的类之对象而且这个对象只创建一次就可以使用匿名类!匿名类对象的应用:1. 和子类有关的匿名类2. 和接口有关的匿名类子类相关:上转型7.2.1 和父类有关的匿名类因此,本段代码整体是一个语句。使用匿名类,实质是产生一个子类对象!完成三件事:1、创建一个Printer的子类,该子类为匿名类2、改写Printer中的方法print()3、返回该子类的引用,作为shouMessage的参数。board.showMessage(printer);参数是上转型对象7.2.2 和接口有关的匿名类内部类访问权限(总结)非静态成员必须在外部类对象存在的情况下使用 非静态内部类可以访问外部类的所有成员,包括private成员外部类之外访问内部类时需要注意权限修饰符的限制,这点和类成员一样外部类访问内部类的成员需要创建内部类的对象,之后可以访问内部类的任何成员,包括private成员,需要注意的是普通内部类不可以有静态成员当外部类的成员和内部类的成员重名时,仅用this是区分不了的。在内部类中访问外部类的成员时可以用如下语法区分 : 外部类类名.this.外部类成员; 内部类定义在方法中称为局部内部类,只在局部有效7.3 异常类异常(Exception)是正常程序流程所不能处理或没有处理的异常情况或异常事件没有处理错误的程序:ReadFile{ Open the file; Got Size Of the File; Allocate Memory; Close the File;}7.3 用异常处理错误正常业务逻辑异常处理7.3 关于异常处理异常处理已经成为一门语言是否成熟的标准之一使用异常处理的好处:1.使得代码结构更加清晰,增加可读性2.提高程序的容错性和健壮性产生异常的代码并不具有语法错误,但往往在程序执行过程中会导致程序意外终结“万物皆对象”——异常也不例外异常类有严格的继承关系,程序中碰到的每个异常都是一个对象7.3.1 异常体系结构所有异常类型都是内置类Throwable的子类与JVM相关的问题,如系统崩溃,虚拟机错误,内存空间不足,方法调用栈溢出等用于用户程序可能捕获的异常。应尽可能在代码中处理这种异常。7.3.1 异常的分类Exception分为两种:Checked异常(在编译阶段需要被处理的异常)。JVM会强制程序处理Checked异常(Eclipse有所提示)Runtime异常(在程序执行阶段出现的异常)。代码中应该尽可能处理这些异常,JVM本身不提示处理RuntimeException运行异常类算术异常 ArithmeticException:除数为0 空指针异常 NullPointerExceptionint a[] = null;a[0] = 1;//对空数组中的元素进行操作String str = null;str.length() //调用空对象的方法类型强制转换异常 ClassCastExceptionObject obj = new Object();String str = (String) obj; RuntimeException运行异常类负数组长度异常 Negative

文档评论(0)

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

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

1亿VIP精品文档

相关文档