class Person {
private String name;
private String sex="male";
public Person(String name) {
this.name = name;
}
public String getSex(){return this.sex;}
}
在上面的课程中,如果我想设置性别的默认值。好吗? 那么,如果我想创建新的Person,下面的代码是好的吗?
Person p = new Person("mike");
String sex = p.getSex();
答案 0 :(得分:1)
您可以在Java中链接构造函数以提供某些默认值。
例如,这里有一个带名字的构造函数,一个带有名字和性别的构造函数。
public class Person {
private String name;
private String sex;
public Person(String name, String sex) {
this.name = name;
this.sex = sex;
}
public Person(String name) {
this(name, "male");
}
// getters/setters here
}
如果您的对象有很多可选的属性,那么您应该考虑Builder pattern而不是标准构造函数。
答案 1 :(得分:0)
通过将字段定义为final并通过构造函数分配值,始终可以使您的类线程安全。
class Person {
private final String name;
private final String sex;
public Person(String name, String sex) {
this.name = name;
this.sex = sex;
}
public String getName() { return this.name; }
public String getSex(){return this.sex;}
}