Live2d Test Env

Java基础知识笔记第七章:内部类和异常类

内部类

/*
*Java支持在一个类中定义另一个类,这样的类称为内部类,而包含内部类的类称为内部类的外嵌类
*/
重要关系:
/*
*1.内部类的外嵌类在内部类中仍然有效,内部类的方法也可以外嵌类的方法
*2.内部类的类体中不可以声明变量类变量和类方法(static)
*3.内部类仅供他的外嵌类使用。其他类不可以用某个类的内部类
*/

/*
*字节码文件:外嵌类$内部类名.class
*/


/*
*内部类可以被修饰为static,但是内部类不能操作外嵌类的实例成员变量
*/

 

匿名类

  和子类有关的异常类

java允许我们直接使用一个类的子类体创建一个子类对象,也就是说创建子类对象时,除了使用父类的构造方法外还有类体,此类体被认为是一个子类去掉类声明后的类体,称作:匿名类


new Bank{
    匿名类的类体
};

    特点:

/*
*匿名类可以继承父类的方法也可以重写父类的方法
*使用匿名类时,必然是在某个类中直接用匿名类创建对象,因此匿名类一定是内部类
*匿名类可以访问外嵌类的成员变量和方法,匿名类的类体中不可以声明static成员变量/方法
*由于匿名类是一个子类,但没有类名,所以在用匿名类创建对象的时候,要直接使用父类的构造方法
*/

 

  和接口有关的匿名类

/*
假设Computable是一个接口,那么java允许直接用接口名和一个类体创建一个匿名对象,此类被认为是实现了Computable接口的类去掉声明后的类体,称作匿名类。
*/

new  Computable{
    实现接口的匿名类的类体
}

 

异常类

所谓异常就是运行时可能出现的一些错误,例如试图打开一个根本不存在的文件,异常处理将会改变程序的控制流程,让程序有机会对错误做出处理

 

  try......catch语句

try{

        包含可能发生的异常语句

}catch(ExceptionSubClass1 e){
        .......
}
catch(ExceptionSubClass2 e){
        .......
}
// 处理异常的时候可以自己try.....catch   也可以throw到上一层处理
public  String getMessage();
public String toString();
public void printStackTrace();


//打印异常信息
 

 

  自定义异常类

继承Exception做父类
写出构造方法

断言:

/*
断言:不准备通过异常来捕获错误,例如,当发生某个错误时,要求程序必须停止执行。
*/

语法格式:
assert   booleanExpression
assert   booleanExpression:messageException;

例如,对应断言语句:
assert  number >=0
//如果表达式number >=0的值为true,程序继续执行,否则程序立刻结束执行。
java  -ea  mainClass

 

小结:

posted @ 2018-10-02 08:35  麦奇  阅读(499)  评论(0编辑  收藏  举报