使用封装实现如下功能:定义包含三个元素的对象数组,数据类型为Student,并使用for循环遍历输出每个学生的年龄。每个学员对象的年龄必须在18-30岁之间:Student类与测试类要求在不同包中。用java语言编写
时间: 2024-10-16 09:13:15 浏览: 26
首先,在Java中,我们可以创建一个封装了学生信息的`Student`类,包括姓名和年龄属性,以及相关的getter和setter方法。同时,我们需要添加一个验证年龄的方法,确保年龄在18到30岁之间。
```java
// Student.java (在com.example.student 包中)
package com.example.student;
public class Student {
private String name;
private int age;
// 构造函数、getter和setter方法省略
public void validateAge() {
if (age < 18 || age > 30) {
throw new IllegalArgumentException("Age must be between 18 and 30.");
}
}
// getter 和 setter 方法同样省略
}
```
接下来,在另一个包`com.example.test`中,我们创建一个`TestClass`来定义数组并遍历它:
```java
// TestClass.java (在com.example.test 包中)
package com.example.test;
import com.example.student.Student;
public class TestClass {
public static void main(String[] args) {
// 创建一个Student对象数组
Student[] students = new Student[3];
students[0] = new Student("Alice", 25);
students[1] = new Student("Bob", 20); // 需要验证年龄
students[2] = new Student("Charlie", 30);
// 使用for循环遍历数组,验证年龄并输出
for (Student student : students) {
try {
student.validateAge();
System.out.println("Student " + student.getName() + " is " + student.getAge() + " years old.");
} catch (IllegalArgumentException e) {
System.out.println(e.getMessage());
}
}
}
}
```
在这个例子中,我们使用了封装来隐藏学生的年龄,仅提供公共访问点,即getter方法。在`TestClass`的`main`方法中,通过`for-each`遍历数组,如果年龄有效则打印,否则捕获异常并显示错误消息。
阅读全文