1内部类
java支持在一个类中定义另一个类,这样的类称作内部类,而包含内部的类成为内部类的外嵌类。
内部类的外嵌类的成员变量在内部类中仍然有效,内部类中的方法也可以调用外嵌类中的方法。
内部类的类体中不可以声明类变量和类方法。外嵌类的类体重可以用内部类声明对象,作为外嵌类成员。
内部类仅供它的外嵌类使用,其他类不可以用于某个类的内部类声明对象。
内部类可以被修饰为static内部类,staic内部类是外嵌类中的一个静态数据,,staitc内部类不能操作外嵌类中的实例变量。
2匿名类
和子类有关的匿名类
匿名类就是一个子类,由于无名可用,所以不可能用匿名类声明对象,但却可以直接用匿名类创建对象。
new bank(){
匿名类的类体
}
匿名类的特点:
匿名类可以继承父类的方法也可以重写父类方法
使用匿名类时,必然是在某个类中直接使用匿名类创建对象,匿名类一定是内部类。
匿名类可以访问外嵌类中的成员变量和方法,匿名类的类体中不可以声明static成员变量和static方法
由于匿名类是一个子类,但没有类名,所以在使用匿名类创建对象是,要直接用父类构造方法。
和接口有关的匿名类
java允许直接用接口名和一个雷创建一个匿名对象,此类体被认为实现接口的类去掉类声明后的类体。
new computer(){
实现接口的匿名类的类体
}
如果某个方法的参数是接口类型,可以用接口名和类体祝贺组建一个匿名对象传递给方法的参数,类体必须重写接口中的全部方法。
3异常类
java允许定义方法时声明该方法调用过程中可能出现异常,即允许方法调用过程中抛出异常对像终止当前方法的继续执行。异常对象可以用以下方法得出或输出有关异常的信息。
public string getMessage();
public void printStackTrace();
public String toString();
try-catch语句
try{
包含可能发生异常的语句}
catch{ExceptionSubClass1 e){
。。。}
catch{ExceptionSubClass2 e){
。。。}
断言
断言语句一般适用于程序不准备通过捕获异常来处理的错误。
断言的语法格式
assert boolenExpression;
assert boolenExpression:messageException;