2.建立Person类,成员变量为姓名和年龄,具有构造方法、get/set方法。创建NoAgesException类,当年龄为负数或大于200岁抛出异常IllegalArgumentException。建立Person对象,键盘输入姓名和年龄,测试该对象。
时间: 2024-10-29 08:20:30 浏览: 4
Python面向对象程序设计类变量与成员变量、类方法与成员方法用法分析
首先,我们创建一个名为`Person`的类,它有两个私有成员变量:姓名`name`和年龄`age`。我们将提供对应的构造方法、getter和setter方法以及一个`setAge`方法,用于特殊情况下的年龄检查。同时,我们会定义一个`NoAgesException`子类,继承自`IllegalArgumentException`,以便在年龄无效的情况下抛出异常。
```java
import java.util.Scanner;
class Person {
private String name;
private int age;
// 构造方法
public Person(String name) {
this.name = name;
}
// Getter and Setter methods
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
// 设置年龄并检查
public void setAge(int age) throws NoAgesException {
if (age < 0 || age > 200) {
throw new NoAgesException("年龄不能为负数或超过200岁");
}
this.age = age;
}
}
class NoAgesException extends IllegalArgumentException {
public NoAgesException(String message) {
super(message);
}
}
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入姓名:");
String name = scanner.nextLine();
try {
System.out.println("请输入年龄:");
int age = scanner.nextInt();
Person person = new Person(name);
person.setAge(age); // 调用setAge方法
System.out.println("Person object: " + person.getName() + " is " + person.getAge() + " years old.");
} catch (NoAgesException e) {
System.out.println("错误: " + e.getMessage());
}
}
}
```
在上述代码中,用户通过键盘输入姓名和年龄,然后创建一个`Person`对象。如果输入的年龄不符合规则,将会抛出`NoAgesException`异常,程序会捕获并打印出相应的错误信息。
阅读全文