如何正确编码以将独特属性保存在单独的对象中

时间:2017-06-05 06:58:26

标签: java object attributes unique

我在user.java

中有以下结构
public class User(){

    string fname;
    string lname;
    string email;

    public User(){
        this.fname = randomCharGenMethod();
        this.lname = randomCharGenMethod();
        this.email = randomCharGenMethod();
   }
}

在另一个java类中,我创建了以下对象。

static User user1 = new User();
static User user2 = new User();

当我继续创建对象时,它们都具有相同的fnamelnameemail

实际上,我希望它们具有唯一的fnamelnameemail,因为它们是从字符串生成方法生成的

1 个答案:

答案 0 :(得分:1)

是否有任何特定原因将User1,User2声明为静态?处理静态变量时,您应该记住它们是在实例之前加载它们的值。

考虑这段代码,作为一个更简单的例子:

public class User() {
static string fname;
static string lname;
static string email;

public User() {
    this.fname = randomCharGenMethod();
    this.lname = randomCharGenMethod();
    this.email = randomCharGenMethod();
 }
} 

User的任何新实例都将共享相同的fname,lname和email值,因为它们是在任何实例化之前加载的。

考虑到这一点,也许如果user1,user2不是静态的,它们可以保存单独生成的值。