5-1继承和异常处理顺序示例(分数 20)
现有一个Employee类,继承了Person类,其中Employee类有一个年龄age属性,当年龄为负数时会发生异常。根据运行结果,补充以下程序空格处代码:
class Person {
public Person() {
// 此处填写代码(2分)
}
}
class // 此处填写代码(2分)
extends Person{
// 此处填写代码(2分)
public Employee(int age) {
// 此处填写代码(2分)
setAge(age);
// 此处填写代码(2分)
}
public void setAge(int age) // 此处填写代码(2分)
IllegalArgumentException {
if (age >= 0)
this.age = age;
else
throw new IllegalArgumentException(// 此处填写代码(2分));
}
}
public class Main{
public static void main(String[] args){
try {
Employee emp1 = new Employee(10);
Employee emp2 = new Employee(-1);
} // 此处填写代码(2分){
System.out.println(ex.getMessage());
}
finally {
// 此处填写代码(2分)
}
// 此处填写代码(2分)
}
}
以上程序的运行结果为:
创建一个Person
创建了一个Employee
年龄为:10
创建一个Person
创建了一个Employee
年龄不能为负数
继续…
任务完成!
class Person {
public Person() {
System.out.println("创建一个Person");
}
}
class extends extends Person{
private int age;
public Employee(int age) {
System.out.println("创建了一个Employee");
setAge(age);
System.out.println("年龄为:"+age);
}
public void setAge(int age) throws IllegalArgumentException {
if (age >= 0)
this.age = age;
else
throw new IllegalArgumentException("年龄不能为负数"); // 抛出异常
}
}
public class Main{
public static void main(String[] args){
try {
Employee emp1 = new Employee(10);
Employee emp2 = new Employee(-1);
} catch(IllegalArgumentException ex) { // 捕获异常
System.out.println(ex.getMessage());
}
finally {
System.out.println("继续.....");
}
System.out.println("任务完成!");
}
}