接口,内部类,异常
普通类:只有具体实现
抽象类:具体实现和规范(抽象方法)
接口:只有规范,自己无法写方法–约束和实现分离。
接口的本质是契约
interface
一个java类中可以有多个class类,但只能有一个public class
内部类
内部类可以获得外部类的私有属性
放在方法里面的类:局部内部类
异常
//假如要捕获多个异常:异常等级要从小到大
int a = 0;
int b = 0;
try { //try监控区域
System.out.println(a/b);
}catch (ArithmeticException e){// catch 捕获异常
System.out.println("除数不能为0");
}catch (Exception e){
System.out.println("exception");
}catch (Throwable e){
System.out.println("throwable");
} finally {//处理善后工作
System.out.println("finally");
}
// 假如方法中处理不了这个异常,方法上抛出异常使用throws,使用try/catch去捕获处理
public void atr(int a,int b) throws ArithmeticException{
if(b == 0){ //throw throws
throw new ArithmeticException();//主动抛出异常,一般在方法中使用
}
System.out.println(a/b);
}
实际应用中经验
- 处理运行时异常时,采用逻辑去合理规避同时赋值try-catch处理
- 在多重catch块后面,可以加一个catch(Exception)来处理可能会被遗漏的异常
- 对于不确定的代码,也可以加上try-catch,处理潜在的异常
- 尽量处理异常,切忌只是简单的调用printStackTrace()去打印输出
- 具体如何处理异常,要根据不同的业务需求和异常类型去决定
- 尽量添加finally语句块去释放占用资源