设计一个Birthday类,其成员变量包括year,month,day,需提供构造方法(赋值)输出Birthday对象值(格式如2001-09-11)的方法(printBirthday)和计算年龄(p的方法(printAge),用java实现编程
时间: 2024-09-18 13:04:45 浏览: 51
当然,我们可以设计一个简单的`Birthday`类来满足这些需求。首先,我们需要创建三个私有成员变量分别代表年、月和日,然后提供对应的公共访问器和构造函数。此外,我们还会提供一个`printBirthday`方法来打印生日信息,以及一个`calculateAge`方法来计算年龄。以下是这个类的Java实现:
```java
import java.util.Calendar;
public class Birthday {
private int year;
private int month;
private int day;
// 构造方法,接受年、月、日作为参数
public Birthday(int year, int month, int day) {
this.year = year;
this.month = month;
this.day = day;
}
// getter methods
public int getYear() {
return year;
}
public int getMonth() {
return month;
}
public int getDay() {
return day;
}
// 输出生日的方法
public void printBirthday() {
System.out.println(year + "-" + padZero(month) + "-" + padZero(day));
}
// 计算年龄的方法,这里假设今天是当前日期
private Calendar today = Calendar.getInstance();
public int calculateAge() {
Calendar birthDate = Calendar.getInstance();
birthDate.set(year, month - 1, day); // 月份从0开始计数
birthDate.set(Calendar.HOUR_OF_DAY, 0);
birthDate.set(Calendar.MINUTE, 0);
birthDate.set(Calendar.SECOND, 0);
birthDate.set(Calendar.MILLISECOND, 0);
return today.get(Calendar.YEAR) - birthDate.get(Calendar.YEAR);
}
// 辅助方法,用于保证数字前有零填充,例如9变为09
private String padZero(int num) {
if (num < 10) {
return "0" + num;
}
return String.valueOf(num);
}
// 测试部分
public static void main(String[] args) {
Birthday bday = new Birthday(1995, 7, 11);
bday.printBirthday(); // 输出:1995-07-11
System.out.println("Age: " + bday.calculateAge()); // 根据当前日期计算并输出年龄
}
}
```
阅读全文