目录
一、内部类与外嵌类:
1.什么是?:在一个类中定义的另一个类。包含内部类的类称为内部类的外嵌类。
2.内部类与外嵌类的关系:
- 外嵌类的成员变量在内部类中仍有效,内部类方法仍可以调用外嵌类方法
- 内部类的类体不能声明类变量和类方法。外嵌类的类体可以用内部类声明对象,作为外嵌类的成员
- 内部类仅能它的外嵌类使用,其他类不能使用别的类的内部类的声明对象
3.注意:
- 内部类生成的字节码文件名:外嵌类名$内部类名.class
- 内部类可以被修饰为static类,这种的不能操作外嵌类中的实例变量。其他类可以使用static内部类创建对象。
二、匿名类:
1.什么是?:
没有声明一个类的子类,却用这个子类的类体创建对象。不能用匿名类声明对象,但可以创建对象
2.匿名类的特点:
- 可以继承父类的方法也可以重写父类的方法
- 匿名类一定是内部类
- 匿名类中不可以声明static成员变量和方法。(匿名类可以访问其外嵌类的成员变量和方法)
- 用匿名类创建对象时,要直接使用父类的构造方法。
- 匿名对象的引用可以传递一个匹配的参数。
三、异常类:
1.分类:
(1)Error类:非检查型异常。错误,无法被处理
(2)Exception类:
RuntimeException:非检查型异常
- NullPointerException空指针异常:
- ArithmeticException数字计算的异常
- ArrayOutOfBoundsException数组越界产生的异常
- ClassNotFoundException找不到类文件的异常
- ClassCastException类文件强制转化的异常
IOException 以及 SQLException:检查型异常
2.try catch finally 语句
异常部分放到try 中;对异常的处理放到catch中。可以有多个catch。catch中的参数是Exception的某个子类,也就是说,这些参数中的类之间不能有父子关系。
3.自定义异常类:
创建类,继承Exception或它的子类,重写构造方法。
用throws关键字声明要产生的若干个异常,用相应的异常类创建对象。用throw关键字抛出该异常对象,导致该方法结束执行。catch的作用是捕获throw抛出的异常对象。
四、断言语句
1.用处:一般用于程序不准备通过捕获异常来处理的错误。在调试代码阶段发挥作用。
2.语法:
- assert booleanExpression;
- assert booleanExxpression : messageException(提示用户出现什么样的错误);
3.注意:
java解释器运行程序时,某人关闭断言语句。调试时可以使用 -ea启用。