java - 在 Java 中创建对象时,如何将现有数字加 1?

标签 java object bluej

例如,我有一个名为 Member 的类,它基本上创建了一个可以登录网站的成员。每当创建此对象的实例时,需要在构造函数中初始化 5 件事,其中之一就是成员编号。该成员(member)编号必须是唯一的。我的一个想法是,每当创建 Member 对象时,就将数字加 1。

这是我当前的代码:

    public Member(String newEmail, int newMoney)
    {
    // Intialises the email.
    email = newEmail;
    // Intialises the membership number.
    membershipNumber = 000;
    membershipNumber =+ 001;
    // Intialises the login status.
    loginStatus = false;
    //
    companions = new ArrayList<Friend>();
    // Intialises the members money.
    money = newMoney;
    }

请忽略登录状态、同伴和金钱。

正如你所看到的,我将成员(member)编号的默认值设置为000,并在其上添加+1,但是创建的每个成员(member),现在无论我创建多少,成员(member)编号始终为1 .

我尝试了另一种方法,添加了整个其他字段,例如:

   public Member(String newEmail, int newMoney)
   {
    // Intialises the email.
    email = newEmail;
    // Intialises the membership number.
    membershipNumber = membershipNumberTwo;
    membershipNumberTwo =+ 001;
    // Intialises the login status.
    loginStatus = false;
    //
    companions = new ArrayList<Friend>();
    // Intialises the members money.
    money = newMoney;
    }

但成员(member)数量始终为0。

任何人都可以帮我解决这个问题:每当在构造函数中创建成员时,将成员编号添加到 +1 吗? 谢谢。

免责声明:我处于 Java 初级水平。

最佳答案

为什么要使用数字? 相反,使用 UUID 创建唯一的membershipNumber。这将保持独特性,您不必为此付出努力。

看看 UUID class与 Java 5 及更高版本捆绑在一起。

使用随机UUID,您可以使用randomUUID方法。

<小时/>

编辑: 如果您计划并发创建对象并且仍然需要增量memberId,只需存储静态AtomicNumber并使用atomicNumber.incrementAndGet()来获取"new"userID

查看更多here

<小时/>

至于你举的例子: 在第一个示例中 - 您在构造函数中初始化membershipNumber的值,这导致它始终为1,就像您所描述的那样。

在第二个示例中,除非 membershipNumberTwo静态,否则每次构造新类时都会对其进行初始化,因此每次都会将其初始化为 0。您需要在一个对象的构造与另一个对象之间保持状态。

关于java - 在 Java 中创建对象时,如何将现有数字加 1?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47794158/

相关文章:

javascript - 如何更新数组中特定对象的属性

java - 找不到 getColor() 方法?国际象棋游戏帮助 Java

java - 如何使用 vert.x 进行进程间通信(同一服务器上两个虚拟机之间的通信)

java - 如何修复 application.yml 文件中的解析异常?

javascript - 尝试在javascript中模拟类,但无法访问内部变量

php - 比较除 pdo var 之外的两个对象

java - repaint() JPanel 如果之前的 repaint() 完成

Java - LinkedList - 性能随着其中不同类的数量而降低

java - 对从另一个类调用方法感到困惑

java - 如何在HistoricalMoment类中调用increment方法()?