评论转为答案:
您走在正确的轨道上。
当前,您创建的每个工作人员都会增加您的静态成员。这意味着它将不保存工作人员的ID(情况并非如此,因为静态变量属于 类 而不是单个 实例
),而是保存到目前为止创建 的工作人员总数 。
固定
- 将您的静态成员重命名为类似的名称,
numWorkers
以反映其功能 - 介绍另一个(非静态)成员,
id
(或workerId
如果您愿意) - 更改
workId++
为id = ++numWorkers
为什么?
现在,每个工人都有自己的
id。您可以通过查看当前已创建的工作人数(
numWorkers)进行分配,将该值加1,然后将其分配给
id。这样,您的第一个工作人员的ID将为
1,第二个工作人员的ID
2以此类推。
numWorkers始终保留创建的工作人员数量,这是您分发的最后一个ID。
放在一起
由于这个问题引起了很多反对(=兴趣),我将上述内容总结为一个蓝图:
public class Worker { private static int numWorkers; // Number of Worker objects created private int id; // Individual ID of a worker public Worker() { id = ++numWorkers; // Will be 1 for the first, 2 for the second, ... } public int getID() { return id; } public static int getNumWorkers() { return numWorkers; }}
请注意,在Java中,你不需要初始化原始类型
int到
0,因为这是在默认值的一个
int。当然,无论如何都很好-
明确表示永远不会有伤害。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)