java-如何在一个超类中有一个局部变量,它只通过超类改变?

wydwbb8l  于 2021-07-12  发布在  Java
关注(0)|答案(2)|浏览(371)

标题可能是一团糟,但我不知道如何更好地描述它。
基本上,假设我有一个抽象的超类 Person 包含名称、年龄和id的,以及从 Person , Members .
我想要一个局部变量 Members 存储从这个类创建了多少个对象,并将其分配给id变量。i、 我从中创建了两个对象 Members ,m和m1。我想为它们自动分配id,每次创建一个对象时,id都会增加1。
Members m = new Member("Name"); Members m1 = new Member("Name2"); 然后我调用打印id的方法,每个对象两次。
m's ID is 1. m1's ID is 2 我准备用一个局部变量, int numberOfObjects = 1; 以及 objectID; ,并尝试了一种新的方法 SetNumber() { objectID = numberOfObjects; numberOfObjects++; } 但是,每次我创建一个新对象,并调用显示其id的方法时,它都会将其设置回1。
那么,我可以创建一个本地对象吗?它不会在每次创建新对象时重置吗?谢谢。

omqzjyyz

omqzjyyz1#

您不必迭代您的子对象,只需为它们创建一个构造函数,该构造函数将隐式地为它们分配一个唯一的id。

class Member{

    private String uuid;
    //your other variables below

    public Member(){
        this.uuid = UUID.randomUUID().toString();
        //other variables set up below   
    }

这将为您创建的每个对象创建一个唯一的id。看到了吗https://docs.oracle.com/javase/7/docs/api/java/util/uuid.html

rjee0c15

rjee0c152#

我只需要在变量名之前添加static。感谢图灵85的回答。https://stackoverflow.com/users/4216641/turing85
其他答案也很有见地。

相关问题