2新建一个Student类作为子类(继承Person类),内有属性studentld,并创建get和set方法。 再新建一个静态变量StudentNumber用于记录学生对象数量,通过无参数构造器每创建一个学生对象,StudentNumber自加1
时间: 2024-10-23 10:08:26 浏览: 28
可以创建一个名为`Student`的子类,它继承自`Person`类,并添加一个额外的私有属性`studentId`。同时,我们需要在`Student`类中定义对应的getter和setter方法,以及一个静态变量`StudentNumber`用于跟踪学生对象的数量。无参数构造器会在每次实例化`Student`对象时自动增加`StudentNumber`。
```java
import java.util.concurrent.atomic.AtomicInteger;
public class Student extends Person {
// 子类特有的属性
private String studentId;
// 初始化学生数量
private static AtomicInteger StudentNumber = new AtomicInteger(0);
// 构造器,继承父类,并初始化StudentId
public Student(String name, int age, String studentId) {
super(name, age);
this.studentId = studentId;
incrementStudentNumber();
}
// Getter方法(获取studentId)
public String getStudentId() {
return studentId;
}
// Setter方法(设置studentId)
public void setStudentId(String studentId) {
this.studentId = studentId;
}
// 自动递增学生数量的方法
private synchronized void incrementStudentNumber() {
StudentNumber.incrementAndGet();
}
// 静态方法获取当前学生数量
public static int getTotalStudents() {
return StudentNumber.get();
}
// 无参数构造器仅在子类中可用
@Deprecated
public Student() {
throw new UnsupportedOperationException("Use a constructor with name and age instead.");
}
}
```
当你创建新的`Student`对象时,`incrementStudentNumber()`会被调用,`StudentNumber`会增加。此外,我们还提供了一个`getTotalStudents()`静态方法,以便于在需要的地方查询总的学生数。
阅读全文