(1)内部类
java支持在一个类中定义另一个类,这样的类称作内部类,而包含内部类的类称为内部类的外嵌类;
内部类和外嵌类之间的重要关系:
外嵌类的成员变量在内部类中仍然有效,内部类中的方法也可以调用外嵌类中的方法
内部类的类体中不可以声明类变量和类方法外嵌类的类体中的方法也可以用内部类声明对象,作为外嵌类的成员
内部类仅供他的外嵌类使用,其他类不可以用某个类的内部类声明对象
非内部类不可以是静态类.static内部类不能操作外嵌类中的实例成员变量
(2)匿名类
如果没有显式地声明一个类的子类,又想子类创建一个对象,java允许我们直接使用一个类的子类的类体创建一个子类对象
new bank(){
匿名的类体
};
Java的的允许直接用接口名和一个类创建一个匿名对象,此类体被认为是实现了可Computable接口的类去掉类声明后的类体,称作匿名类
实现了Computable接口匿名类创建对象:
new Computable(){
实现接口的匿名类的类体};
(3)异常类
Java的=使用抛出关键字抛出一个异常子类的实例表示异常发生;
异常对象可以调用如下方法得到或输出有关异常的信息
public String getMessage();
public void printStackTrace();
public String toString();
try-catch语句
java使用try-catch语句来处理异常
try{
包含可能发生异常的语句
}
catch(ExceptionSubClass1 e){
…
}
catch(ExceptionSubClass2 e){
…
}
(4)断言
使用关键字assert声明一条断言语句
assert booleanExpression;
assert booleanExpression:messageException;
实例:
assert number>=0;
如果表达式number>=0的值为true,程序继续执行,否则立即结束运行
public static void main(String arg[]){
int []score={-120,98,89,120,99};
int sum =0;
for(int number:score){
assert number>=0:“负数不能是成绩”;
sum=sum+number;
}
以上是数组循环