如何解决Java - 如何在超类中拥有仅通过超类更改的局部变量?
标题可能有点乱,但我不知道如何更好地描述它。
基本上,假设我有一个抽象超类,比如说包含姓名、年龄和 ID 的 Person
,以及另一个从 Person
、Members
扩展的类。
我想在 Members
中有一个局部变量,用于存储从该类创建的对象数量,并将其分配给 ID 变量。
IE。
我从 Members
、m 和 m1 创建了两个对象。我想为他们自动分配他们的 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。
那么,我可以创建一个本地对象,每次创建新对象时都不会重置吗? 谢谢。
解决方法
您不必迭代子对象,只需为它们创建一个构造函数,该构造函数将为它们隐式分配一个唯一 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
,我只需要在变量名之前添加静态。 感谢 turing85 的回答。 https://stackoverflow.com/users/4216641/turing85
其他答案也很有见地。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。