person类中包含姓名name和年龄age两个属性,采用封装编写,person类定义一个无参的构造方法和一个接受两个构造参数的方法,两个参数分别为姓名name和年龄age两个属性赋值在测试类Exam01中创建两个Person对象,一个使用为参构造方法,然后调用方法给姓名和年龄age赋值,另一个使用有参的构造方法,在构造方法中给name和年龄age赋值,最后输出这两个Person对象的的信息,类MyException进行异常描述,并在Exam01中输入年龄为负数时会抛出“年龄不能为负”的异常信息
时间: 2024-02-06 09:10:07 浏览: 74
Person类的代码如下:
```java
public class Person {
private String name;
private int age;
public Person() {}
public Person(String name, int age) {
this.name = name;
try {
if (age < 0) {
throw new MyException("年龄不能为负");
}
this.age = age;
} catch (MyException e) {
System.out.println(e.getMessage());
}
}
public void setName(String name) {
this.name = name;
}
public void setAge(int age) throws MyException {
if (age < 0) {
throw new MyException("年龄不能为负");
}
this.age = age;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
public String toString() {
return "姓名:" + name + ",年龄:" + age;
}
}
```
Exam01类的代码如下:
```java
public class Exam01 {
public static void main(String[] args) {
Person p1 = new Person();
p1.setName("张三");
try {
p1.setAge(20);
} catch (MyException e) {
System.out.println(e.getMessage());
}
System.out.println(p1);
Person p2 = new Person("李四", -10);
System.out.println(p2);
}
}
```
MyException类的代码如下:
```java
public class MyException extends Exception {
public MyException() {}
public MyException(String message) {
super(message);
}
}
```
输出结果如下:
```
姓名:张三,年龄:20
年龄不能为负
姓名:李四,年龄:0
```
阅读全文