Java.定义一个Birth类,其成员变量有:year、month、day,其无参构造方法将成员变量初始化为:year=2005,month=1,day=1;有参构造方法对成员变量进行合理初始化。创建Birth对象,通过构造方法初始化成员变量,输出成员变量值及其年龄。
时间: 2024-09-24 20:06:16 浏览: 39
empoly_birth.rar_access_asp access_birth_html连接access_site:en.pu
在Java中,你可以定义一个`Birth`类,用于表示个人的出生日期。以下是该类的定义:
```java
public class Birth {
private int year;
private int month;
private int day;
// 默认无参构造方法,将年份设置为2005,月份和日期设置为1
public Birth() {
this.year = 2005;
this.month = 1;
this.day = 1;
}
// 有参构造方法,接收年、月、日作为参数进行初始化
public Birth(int year, int month, int day) {
if (month > 0 && month <= 12 && day > 0 && day <= 31) { // 验证输入的有效性
this.year = year;
this.month = month;
this.day = day;
} else {
throw new IllegalArgumentException("Invalid date");
}
}
// 计算年龄的方法,这里假设当前日期是今天的日期
private int calculateAge(LocalDate currentDate) {
return currentDate.getYear() - year;
}
// 主要的getters和setters方法,这里省略了
public void setAge(LocalDate currentDate) {
age = calculateAge(currentDate);
}
// 输出成员变量值和年龄的方法
@Override
public String toString() {
return "Birth{" +
"year=" + year +
", month=" + month +
", day=" + day +
", age=" + (calculateAge(LocalDate.now())) + " years old" // 获取当前年龄
'}';
}
public static void main(String[] args) {
Birth birth = new Birth(); // 使用默认构造方法
System.out.println(birth); // 输出初始出生信息
Birth specificBirth = new Birth(1990, 6, 28); // 使用有参构造方法
birth.setAge(LocalDate.now()); // 设置实际年龄(假设当前日期)
System.out.println(specificBirth); // 输出指定日期和年龄的信息
}
}
```
注意:此示例中,我们假设了一个`LocalDate`类型的`currentDate`来获取用户的当前年龄,这通常需要依赖外部库如`java.time.LocalDate`。在实际项目中,你需要处理这个日期的获取以及比较。另外,为了简单起见,`calculateAge`方法仅计算从出生日期到现在的年数,如果需要精确到天或月,需要进一步修改。
阅读全文