设计一个Student类,其成员变量有:sname、birthday、scoreA、score B、scorec 包含方法:计算年铃、计算总分、并定义该类的toString方法,输出姓名、出生日期(年-月-日)、年龄、总分)单独并提供测试类
时间: 2023-12-21 10:03:23 浏览: 130
下面是一个可能的实现:
```java
import java.time.LocalDate;
import java.time.Period;
public class Student {
private String sname;
private LocalDate birthday;
private int scoreA;
private int scoreB;
private int scoreC;
public Student(String sname, LocalDate birthday, int scoreA, int scoreB, int scoreC) {
this.sname = sname;
this.birthday = birthday;
this.scoreA = scoreA;
this.scoreB = scoreB;
this.scoreC = scoreC;
}
public int calculateAge() {
LocalDate now = LocalDate.now();
return Period.between(birthday, now).getYears();
}
public int calculateTotalScore() {
return scoreA + scoreB + scoreC;
}
@Override
public String toString() {
return String.format("姓名:%s,出生日期:%s,年龄:%d,总分:%d", sname, birthday, calculateAge(), calculateTotalScore());
}
public static void main(String[] args) {
Student student = new Student("张三", LocalDate.of(2000, 1, 1), 80, 90, 85);
System.out.println(student);
}
}
```
这个实现中,我们使用了 Java 8 中的 `LocalDate` 类来处理日期,它提供了方便的日期计算方法。在 `toString` 方法中,我们使用了 `String.format` 方法来格式化输出。
在测试类中,我们创建了一个 `Student` 对象,并输出其字符串表示。输出结果为:
```
姓名:张三,出生日期:2000-01-01,年龄:22,总分:255
```