Java p7

201711671126 《Java程序设计》第七章 内部类与异常类

  • 内部类
    • Java支持在一个类中声明另一个类,这样的类称作内部类,而包含内部类的类成为内部类的外嵌类
    • 使用规则
      • 内部类的类体中不可以声明类变量和类方法。外嵌类的类体中可以用内部类声明对象,作为外嵌类的成员
      • 声明内部类如同再类中声明方法或变量一样,一个类把内部类看作是自己的成员
      • 外嵌类的类体中可以用内部类声明的对象,作为外嵌类的成员
      • 外嵌类的成员变量在内部类中仍然有效,内部类中的方法也可以调用外嵌类中的方法。
      • 内部类的类体中不可以声明类变量和方法
      • 外嵌类和内部类在编译时,生成两个.class文件
  • 匿名类
    • 和子类有关的匿名类
      • 创建子类对象时,除了使用父类的构造方法外还有类体,此类体被认为是一个子类去掉类声明后的类体,称作匿名类
      • 假设Bank是类,那么下列代码就是用Bank的一个子类(匿名类)创建对象:
        • new Bank () {
        • 匿名类的类体
        • };
    • 和接口有关的匿名类
      • 假设Computable是一个接口,那么,Java允许直接用接口名和一个类体创建一个匿名对象,此类体被认为是实现了Computable接口的类去掉类声明后的类体,称作匿名类
      • 下列代码用实现了Computable接口的类(匿名类)创建对象:
        • new Computable() {
        • 实现接口的匿名类的类体
        • } ;
  • 异常类
    • try-catch语句
      • 语句格式
        • try {
        • 包含可能发生异常的语句
        • }
        • catch(ExceptionSubClass1  e) {
        • }
        • catch(ExceptionSubClass2  e) {
        • }
      • 带finally子语句的try~catch语句
        • try{}
        • catch(ExceptionSubClass e){ }
        • finally{}
        • 执行机制
          • 在执行try~catch语句后,执行finally子语句,也就是说,无论在try部分是否发生过异常,finally子语句都会被执行
    • 自定义异常类
      •  
    • 一个方法不处理它产生的异常,而是沿着调用层次向上传递,由调用它的方法来处理这些异常,叫声明异常
    • 声明异常的方法
      • 在产生异常的方法名后面加上要抛出(throws)的异常的列表
  • 断言
    • 断言语句用于调试代码阶段。在调试代码阶段让断言语句发挥作用,这样就可以发现一些致命的错误,当程序正式运行时就可以关闭断言语句,但仍把断言语句保留在源代码中,如果以后应用程又需要调试,可以重新启用断言语句

猜你喜欢

转载自blog.csdn.net/remain_genuine/article/details/84971559