使用封装实现如下功能: 。定义包含三个元素的对象数组,数据类型为Student,并使用for循环遍历输出每个学生的年龄。。每个学员对象的年龄必须在18-30岁之间:Student类与测试类要求在不同包中。
时间: 2024-10-18 19:13:17 浏览: 38
在Java中,我们可以使用封装来创建一个名为`Student`的类,代表学生信息,并在另一个包中定义一个测试类来操作这个数组。首先,在`edu.package.Student`包下创建`Student`类:
```java
// Student.java (在 edu.package.Student 包下)
public class Student {
private int age; // 封装变量年龄
// 构造函数检查年龄范围
public Student(int age) {
if (age >= 18 && age <= 30) {
this.age = age;
} else {
throw new IllegalArgumentException("Age must be between 18 and 30");
}
}
// 获取年龄的方法(getters不必再包装,因为已经封装)
public int getAge() {
return age;
}
}
```
然后,在`edu.package.TestClass`包下的测试类中完成功能:
```java
// TestClass.java (在 edu.package.TestClass 包下)
import edu.package.Student;
public class TestClass {
public static void main(String[] args) {
// 创建一个包含三个学生对象的数组
Student[] students = new Student[3];
// 初始化并遍历学生数组,设置年龄并打印
for (int i = 0; i < students.length; i++) {
students[i] = new Student(i + 25); // 示例年龄值,保证在18-30岁范围内
System.out.println("Student " + (i+1) + " is " + students[i].getAge() + " years old.");
}
}
}
```
在这个例子中,我们实现了封装,将年龄作为私有成员变量保护起来,并通过公共方法`getAge()`获取。在`TestClass`中,我们只负责创建学生实例和调用其方法,保持了职责分离。
阅读全文