Java 当一个类中有多个构造函数时,使代码在每次创建对象时执行
我有一个类用户,我想在创建时为其分配一个id。我这样做是为了:Java 当一个类中有多个构造函数时,使代码在每次创建对象时执行,java,design-patterns,Java,Design Patterns,我有一个类用户,我想在创建时为其分配一个id。我这样做是为了: public class User { private String firstName; private String lastName; private int id; private static int count; { id = count++; } public User() {} public User(String firstName) {...} publ
public class User {
private String firstName;
private String lastName;
private int id;
private static int count;
{
id = count++;
}
public User() {}
public User(String firstName) {...}
public User(String lastName) {...}
}
但是我不确定这是否是最好的方法?更好的做法是将id=count++
代码放在默认构造函数中,并在其他构造函数中调用它,如:
public User(String firstName) {
this();
...
}
class
User
也有孩子,比如Student
,Worker
,等等。@user207421你是什么意思?到目前为止,它不再重复-id在初始化块中只设置一次,您可以简单地使用'private int id=count++`;没有初始化block@racraman这听起来像是我错过的另一条路!另一个用户(他删除了他的答案)也使用了这种方法,所以我可能会坚持下去?我想我听说初始化块比构造函数/内联初始化更糟糕,仅仅创建一个用户数组或用户集合不是更容易吗?