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
小结:
合群是堕落的开始 优秀的开始是孤行