评论转为答案:
你走在正确的轨道上.
目前,您创建的每个工作人员都会增加您的静态成员.这意味着它不会保存工作者的ID(这不是这种情况,因为静态变量属于类而不是单个实例),而是保存到目前为止您创建的工作者总数.
固定
>将静态成员重命名为numWorkers,以便反映它的作用
>介绍另一个(非静态)成员,id(如果你愿意,还可以是workerId)
>将workId更改为id = numWorkers
为什么?
现在,每个工人都有自己的身份.您可以通过查看当前创建的工作人员数(numWorkers)来分配它,将该值递增1,然后将其分配给id.这样,你的第一个工人的ID将是1,第二个将是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中,您不需要将primitive type int初始化为0,因为这是int的default value.当然,无论如何都可以做到这一点 – 明确地说它永远不会伤害.