6.14课堂笔记之异常
实体内部类、匿名内部类
一个外部类对象拥有多个内部类对象,这些内部类对象共享此外部类对象的属性。
方法内部类或局部内部类,可以访问外部类的私有属性。
方法内部类对象里定义的方法,只能访问包含内部类方法的final类型的形参或final类型的局部变量。
没有特殊情况,不要使用内部类
内部类代码相对复杂,破坏了对象的封装性。
使得与外部类对象的耦合性增强。
静态内部类不能访问外部类的非静态属性
异常:
(error)错误、异常(编译异常、运行异常)
(error)错误:不能处理。
编译异常(IOException):外部资源问题,对这类问题有预案,通知用户,并使程序不终止,继续运行。解决不了(网络中断)。
运行异常(RuntimeException):先通过异常发现问题,然后通过异常信息,发现问题,解决问题。使运行异常在用户界面不出现。
所有问题的父类为Throwable
所有异常的父类为Exception
流对象==管道
FileInputStream
throws不处理这个类型的异常
throw抛出异常
父亲不处理这个异常、儿子也不会处理这个异常
子类要复写父类的方法,比父类处理更多的异常,子类不处理的异常类<父类不处理的异常类