【发布时间】:2022-12-15 12:21:27
【问题描述】:
在我的作业中,我有一个带有属性的 Java 类
private final int idOfPassenger;
private final String name;
在仅采用 String 作为参数的构造函数中,我应该初始化乘客的姓名和 ID。但是每次我创建一个new Passenger 时,我应该将idOfPassenger 变量递增 1(从 0 开始),因此没有乘客具有相同的编号。
我不允许更改 private final 或构造函数参数。
我如何在每次创建新乘客时将 idOfPassengers 递增 1?
public class Passenger {
private final int idOfPassenger;
private final String name;
public Passenger(String name) {
this.name = name;
this.idOfPassenger = 0;
}
}
【问题讨论】:
-
您可能打算使用另一个变量来跟踪要使用的下一个 ID,这将不是最终的,而是静态的。
private static int nextPassengerId = 0;。然后你会执行idOfPassenger = nextPassengerId;并将其递增一个,nextPassengerId++;。注意多线程问题,如果这是一个问题,请使用AtomicInteger代替nextPassengerId。