内部类:定义在类内部的类。内部类,可以直接访问外部类的成员,因为内部类持有外部类的应用--outer.this,而外部类想要访问内部类需要建立内部类的对象。
内部类定义在成员位置上可以用private、static修饰。如果被static修饰,则会出现访问局限,即只能访问外部类的静态成员,而且只要内部类中存在静态成员,则内部类就是静态的。
内部类也可以定义在局部位置上。只能访问在局部中被final修饰的局部变量。
匿名内部类:没有名字的内部类,其实就是个匿名子类对象。想要定义匿名内部类,首先内部类要继承一个类和实现一个接口。格式是new 父类名&接口名(){定义子类成员或覆盖父类方法}.方法。
当函数的参数是接口类型引用是,接口中的方法不宜超过3个。
异常就是把程序运行出现的错误封装成对象,方便于操作和处理。
异常体系:Throwable:可抛出。error:不需要编写相应的针对代码。通常是JVM发生的,程序需要修正。exception:可以有针对性的处理。
这个体系中的所有类和对象都具备可抛性。throws(声明)和throw(抛出对象)。处理方式有捕捉和抛出。try{需要检测的代码} catch(异常类 变量名){异常处理代码} finally{一定会处理的代码}
异常分为编译时异常(除了RuntimeException)和运行时异常(RuntimeException以及它的子类,编译时不被检测)