接口
1.定义和实现
public interface 接口名{......}
public class 类名 implements 接口名{......}
2.接口的组成
1.接口和类是一个级别的
2.成员变量:默认是全局静态变量 public static final double PI = 3.13;
3.成员方法:默认是抽象的方法,也是全局的。默认使用public abstract 关键字修饰方法。JDK1.7全是全局抽象方法 JDK1.8可以写普通的静态方法
4.构造方法:不能实例化接口,因为接口没有构造方法。
3.注意
1.类先继承再实现接口 public class 子类 extends 父类 implements 接口1,接口2
2.一个类可以实现多个接口,用,隔开
3.接口可以间接实现多态的效果
接口名 a = new 类名();
a. 方法名();
4.接口的应用(对引用变量按用户要求的条件排序)
异常
1.自己处理异常的方式
方式1:try-catch
方式2:throws
Exception是异常的顶级类
2.try-catch
try{
........
}catch(Exception e){
........
}
执行过程
1.情况1:try中没有异常,try中代码顺序执行,catch块中的代码不执行,然后执行catch块后续语句
2.情况2:try中有异常,try中出现异常的后续代码不执行,如果catch块中的异常类型匹配,catch块中的代码执行,然后执行catch块后续语句
3.情况3:try中又一场,try中出现异常的后续代码不执行,如果catch块中的异常类型不匹配,catch块中的代码不执行,也不执行catch块后续语句,最后是交给JVM来处理。
catch块中处理异常的方式:自定义异常信息(用户友好)
System.out.println("人数不能为0或者总分与人数必须是整数")
3.多重catch语句的执行过程
1.一旦遇见异常,java会自动生成一个异常对戏那个,拿着这个对象与catch块中的异常进行对比。
2.先比较第一个catch块,如果匹配执行语句块中的代码,后续的catch不再匹配
3.如果第一个不匹配,继续下一个catch块的比较,直到匹配为止
类似if-else
4.catch中的异常参数,先写范围小的异常,逐渐扩大,最后写Exception
4.finally语句块
try块里出现错误的话,会立即跳出try块,找到匹配的错误,执行catch块里的语句,可以将try代码块中未完成的工作放在finally语句块中执行。
当finally和return同时存在时,先执行finally,再执行return。
5.异常的分类
1.Throwable
子类:Error Exception
2.异常的分类
1.运行时异常 RuntimeException:可以处理也可以不处理
2.检查异常 CheckedException:必须处理
6.自定义异常。