1.枚举
枚举是由一组固定的 全局 静态 常量组成的类型
所有的枚举类 都继承字 Enum类
枚举类型不能new对象
枚举不能继承其他的类(因为默认继承了Enum) 但是可以实现接口
枚举中依然可以书写普通属性,普通方法,静态方法,构造方法 其中构造方法不能使用public修饰
public enum Employee implements Work{
MANAGER("赵四",1,"经理"),
PRESIDENT("大拿",2,"董事长"),
CTO("广坤",3,"技术总监"),
CEO("刘能",4,"总裁")
;
private String name;
private String job;
private int id;
public static Employee getEmployeeById(int id){
Employee[] employees = Employee.values();
for(int i = 0;i < employees.length;i++){
if(id == employees[i].id){
return employees[i];
}
}
return null;
}
Employee(String name, int id, String job){
this.name = name;
this.id = id;
this.job = job;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getJob() {
return job;
}
public void setJob(String job) {
this.job = job;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
@Override
public void doWork() {
System.out.println(name + "在工作");
}
}
2..try-catch
try-catch 处理异常
try : 将有可能出现异常的代码 保存在try代码块中
catch : catch语句块用于捕获、处理出现的异常
try不能单独出现 必须结合 catch 或者 finally 或者 catch-finally
catch 也不能单独出现 必须结合try
2.1
finally
finally : 表示不管是否出现异常 以及异常是否被捕获到 都将执行的代码 存放在finally中
finally还可以提高代码的阅读性
finally不能单独出现 必须结合 try 或者 try -catch
throw 表示生成 并且抛出异常 书写在方法体内部 可以作为一条语句单独使用
throws : 声明了次方法可能会出现哪些异常 通知给调用者
异常可以分为 :检查(受检CheckedException)异常 和 运行时(RuntimeException)异常
针对抛出的异常类型 有差异:
如果抛出的是运行时异常 则不需要声明
如果抛出的是检查异常 则必须声明
针对抛出异常的方法调用
如果抛出的是运行时异常 则调用者不必处理
如果抛出的是检查异常 调用者必须处理
1.继续声明给JVM虚拟机
2.使用try-catch处理
3. 自定义异常
实际开发中,JDK提供的异常不能满足开发需求,我们可以自定义异常
继承Throwable Exception 或者 RuntimeException 三个父类其中之一即可
public class InputScoreException extends Exception{ public InputScoreException(String message){ super(message); } }