Java 定义一个学生类,学生属性包括姓名、年龄…等,通过封装的形式,当年龄小于0时,提示用户“输入年龄有误!请重新输入。”提交内容:代码+运行截图。 (1) 完成有参、无参构造。 (2) 提供get、set方法。 (3) 打印学生信息。 代码
时间: 2024-10-19 12:16:13 浏览: 7
```java
public class Student {
private String name;
private int age;
// 构造函数,包含参数和无参数版本
public Student(String name) {
this.name = name;
this.age = validateAge(name);
}
public Student() {
this("未知");
}
// 私有方法用于验证年龄,大于等于0才接受
private int validateAge(String name) {
int ageInput;
try {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入学生的年龄:");
ageInput = scanner.nextInt();
if (ageInput < 0) {
throw new IllegalArgumentException("输入年龄有误!请重新输入。");
}
return ageInput;
} catch (IllegalArgumentException e) {
System.out.println(e.getMessage());
return validateAge(name); // 如果输入错误,会再次循环直到输入有效
}
}
// get和set方法
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age; // 这里不需要验证,因为已经通过构造函数处理过了
}
// 打印学生信息
public void printStudentInfo() {
System.out.println("姓名: " + name);
System.out.println("年龄: " + age);
}
public static void main(String[] args) {
Student student = new Student("张三");
student.printStudentInfo();
// 创建无名学生
Student anonymousStudent = new Student();
System.out.println("\n匿名学生:");
anonymousStudent.setName("未知");
anonymousStudent.setAge(20); // 正确设置年龄
anonymousStudent.printStudentInfo();
}
}
```
运行此代码,您将看到一个交互式的界面让用户输入年龄,并会在输入无效时给出提示。如果一切正常,将会打印出学生的基本信息。
阅读全文