题目:Party类描述了若干个属性,其中之一是number。利用封装技术设计这个属性:定义私有属性和公有的存取方法 下面是程序的运行结果 要求:设置属性时,方法中的参数变量与私有属性同名。 百年纪念日:20210701
时间: 2024-11-15 19:23:16 浏览: 16
在面向对象编程中,我们可以使用封装技术来保护数据并提供统一的访问接口。对于 Party 类中描述的 number 属性,我们可以这样做:
首先,定义一个名为 `_number` 的私有属性,用于存储实际数值。这样可以防止直接从外部修改这个值。
```java
public class Party {
// 私有属性
private int _number;
// 公共的构造函数用于初始化number
public Party(int number) {
setNumber(number);
}
// 定义公有的存取方法(getter)
public int getNumber() {
return _number;
}
// 定义公有的存取方法(setter),设置number时需要通过此方法
public void setNumber(int number) {
if (isValidDate(number)) { // 添加日期验证逻辑
this._number = number;
} else {
throw new IllegalArgumentException("Invalid date format.");
}
}
// 验证方法,检查输入是否为有效的日期格式
private boolean isValidDate(int number) {
// 根据题目要求判断,这里假设number代表的是四位数的年份
return number >= 2000 && number <= 9999; // 示例判断条件
}
}
```
然后,在创建 Party 对象时,可以通过 `setNumber` 方法设置 number,例如:
```java
Party party = new Party(20210701);
System.out.println(party.getNumber()); // 输出:20210701
```
阅读全文