繁体   English   中英

使用构造函数创建唯一 ID

[英]Create unique ID with constructor

我想创建具有名称和唯一 ID 号的对象,该 ID 号随着每个用户的创建而增加。

class user {

    static int uid = 0;
    String name;

    public user (String name){
       User.uid = uid++;
       this.name = name;
    }
}

在 main 方法中创建用户对象并打印出他们的 ID 时,它们都返回 0。我认为有一个简单的解决方法,但似乎无法在网上的其他地方找到它。

您的代码有几个问题:

  1. 用户没有任何 ID。 您拥有的只是一个静态 ID,因此所有用户都可以共享
  2. 您正在增加静态 ID,然后立即将其先前的值分配给 ID。
  3. 您不尊重 Java 命名约定。

代码应该是

class User {

    private static int uid = 0;

    private String name;
    private int id;

    public User(String name) {
       uid++;
       this.id = uid;
       this.name = name;
    }

    // getters
}

或者,如果您希望 ID 从 0 开始:

class User {

    private static int uid = 0;

    private String name;
    private int id;

    public User(String name) {
       this.id = uid++;
       this.name = name;
    }

    // getters
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM