第七章 内部类与异常类
1.内部类
Java支持在一个类中定义另一个类,这样的类称作内部类,而包含内部类的类成为内部类的外嵌类
内部类和外嵌类之间重要关系如下
内部类的外嵌类的成员变量在内部类中仍然有效,内部类中的方法也可以调用外嵌类中的方法。
内部类的类体中不可以声明类变量和类方法。外嵌类的类体中可以用内部类声明对象,作为外嵌类的成员。
内部类仅供它的外嵌类使用,其他类不可以用某个类的内部类声明对象。
非内部类不可以是static类
2.匿名类
(1)和子类有关的匿名类
特点:
匿名类可以继承父类的方法也可以重写父类的方法。
使用匿名类时,必然是在某个类中直接用匿名类创建对象,因此匿名类一定是内部类。
匿名类可以访问外嵌类中的成员变量和方法,匿名类的类体中不可以声明static成员变量和static方法。
由于匿名类是一个子类,但没有类名,所以在用匿名类创建对象时,要直接使用父类的构造方法。
(2)和接口有关的匿名类
如果某个方法的参数是接口类型,那么可以使用接口名和类体组合创建一个匿名对象传递给方法的参数,类体必须要重写接口中的全部方法。
3.断言
断言在代码调试阶段发挥作用,当程序正式运行时可以关闭断言语句,但仍把断言语句保留在源代码中,若以后又需要调试,可以重新启用断言语句
语法格式assert booleanExpression;
或assert booleanExpression:messageException;
,例如,对于断言语句assert number >=0
,如果表达式的值true
,程序继续运行,否则立即结束执行。上述booleanExpresion
必须是boolean
型的表达式,而assert booleanExpression:messageException;
表示若结果为true程序正常运行,若为false
,程序停止并输出messageException
的值
调试程序时可用java -ea mainClass
语句启用断言语句
第十章 输入输出流
输入输出流,缓冲流,数据流,对象流,scanner的使用扩展还有文件锁。
- 输入流:将从外部的存储媒介或其他程序中读入所需要的数据,指向称为他的源
- 输出流:将处理的结果写入到永久的存储媒介中或传送给其他的应用程序,指向称为他的目的地
等等较难理解的内容,尚未学完,待学习结束补充完毕。