java通过使用合理的访问控制定义Person类:在不同包中定义测试类进行测试。 属性:name、age 方法:name.length()>=2&&name.length()<=61.设置name属性要求字符长度介于2-6之间2.设置age属性要求年龄介于0-150之间
时间: 2024-10-10 19:07:20 浏览: 39
在Java中,你可以通过合理地使用访问修饰符如`private`, `protected`, `public`, 和 `default` (在非内部类或顶级类中)来控制类的属性和方法的可见性。对于`Person`类,我们可以这样做:
```java
// Person类定义
package com.example.person;
public class Person {
// 设置属性的访问级别为private,保证了数据的安全性和封装
private String name;
private int age;
// 构造函数,初始化名字和年龄
public Person(String name, int age) {
setName(name);
setAge(age);
}
// 定义setter方法,用于公共操作,检查输入约束
public void setName(String name) {
if (name.length() >= 2 && name.length() <= 61) {
this.name = name;
} else {
throw new IllegalArgumentException("Name length should be between 2 and 61 characters.");
}
}
public void setAge(int age) {
if (age >= 0 && age <= 150) {
this.age = age;
} else {
throw new IllegalArgumentException("Age should be between 0 and 150 years.");
}
}
// 获取属性值,保持默认的getter访问级别
public String getName() {
return name;
}
public int getAge() {
return age;
}
}
// 测试类定义在另一个包中
package com.example.test;
import com.example.person.Person; // 引入Person类
public class TestPerson {
public static void main(String[] args) {
try {
Person person = new Person("Alice", 30); // 正确实例化
System.out.println(person.getName()); // 输出 "Alice"
} catch (IllegalArgumentException e) {
System.out.println(e.getMessage()); // 如果违反约束,打印错误信息
}
}
}
```
阅读全文
相关推荐


















