#一、内部类(Inner class)
1.内部类的分类
- 成员内部类:在类内部直接定义的类(可分为静态和非静态内部类)
- 局部内部类:方法内、代码块内、构造器内
2. 关于内部类,需要关注三个点
- 如何实例化成员内部类的对象
Person.Don dog = new Person.Dog(); // 静态内部类的实例化方式
Person.Bird bird = new Person().new Bird(); // 非静态内部类的实例化方式
- 如何在成员内部类中区分调用外部类的结构
System.out.println(name); // 直接调用形参
System.out.println(this.name); // 调用内部类的非静态属性
System.out.println(Person.this.name); // 调用外部类的非静态属性
- 开发中,局部内部类的使用
public Comparable getComparable(){
// 方式一:
// 内部类实现接口
class MyComparable implements Comparable{
// 重写接口中的方法
}
return new MyComparable(); // 创建并返回该类的对象
// 方式二:匿名类
return new Comparable(){
// 重写接口中的方法
}
}
二、异常处理
1. Java程序在执行过程中所发生的异常时间可分为两类
- Error:Java虚拟机无法解决的严重问题。如:JVM系统内部错误、资源耗尽等严重情况。一般不编写针对性的代码进行处理
- Exception:其它因编程错误或偶然外在因素导致的一般性问题,可以使用针对性的代码进行处理。例如:
2. 异常处理:抓抛模型
- 过程一:"抛":程序正常执行的过程中,一旦出现异常,就会在异常代码处生成一个对应异常类的对象,并将此抛出,一旦抛出对象以后,其后代码就不再执行;
- 过程二:"抓":可以理解为异常的处理方式,
- try...catch...finally:
- throws: