Java(3)将Person类的成员变量改为出生日期,再设计age()方法求年龄。
时间: 2023-12-28 16:04:54 浏览: 24
下面是修改后的Person类的代码:
```java
import java.time.LocalDate;
import java.time.Period;
public class Person {
private LocalDate birthDate;
public Person(LocalDate birthDate) {
this.birthDate = birthDate;
}
public int age() {
LocalDate now = LocalDate.now();
Period period = Period.between(birthDate, now);
return period.getYears();
}
}
```
在这里,我们使用了Java 8中的`LocalDate`类和`Period`类来计算年龄。`LocalDate`表示一个日期,`Period`表示两个日期之间的时间段。`age()`方法计算出生日期和当前日期之间的时间段,然后返回年龄。
相关问题
java将Person类的成员变量改为出生日期,再设计age()方法求年龄。
可以将Person类的成员变量改为出生日期,代码如下:
```java
public class Person {
private Date birthDate;
public Person(Date birthDate) {
this.birthDate = birthDate;
}
public int age() {
Calendar now = Calendar.getInstance();
Calendar birth = Calendar.getInstance();
birth.setTime(birthDate);
int age = now.get(Calendar.YEAR) - birth.get(Calendar.YEAR);
if (now.get(Calendar.DAY_OF_YEAR) < birth.get(Calendar.DAY_OF_YEAR)) {
age--;
}
return age;
}
}
```
在构造函数中传入出生日期,然后设计age()方法求年龄。方法内部获取当前时间和出生日期时间的Calendar实例,计算出年龄并返回即可。
java(3)将Person类的成员变量改为出生日期,再设计age()方法求年龄。
可以将Person类的成员变量改为出生日期,可以使用Java中的Date类或者Calendar类来表示日期。然后在Person类中添加一个age()方法,用于计算出生日期与当前日期之间的年龄差。
下面是一个示例代码:
```java
import java.util.Calendar;
import java.util.Date;
public class Person {
private Date birthday;
public Person(Date birthday) {
this.birthday = birthday;
}
public int age() {
Calendar today = Calendar.getInstance();
Calendar birth = Calendar.getInstance();
birth.setTime(birthday);
int age = today.get(Calendar.YEAR) - birth.get(Calendar.YEAR);
if (today.get(Calendar.DAY_OF_YEAR) < birth.get(Calendar.DAY_OF_YEAR)) {
age--;
}
return age;
}
public static void main(String[] args) {
Date birthday = new Date(1990, 1, 1);
Person person = new Person(birthday);
System.out.println("Age: " + person.age());
}
}
```
注意,这里使用了已经过时的Date类来表示出生日期,更好的做法是使用Java 8中引入的LocalDate类来表示日期。