可以设置默认值,然后在构造函数中更改值
Is possible to set a default value and then change the value in a constructor
class Person {
private String name;
private String sex="male";
public Person(String name) {
this.name = name;
}
public String getSex(){return this.sex;}
}
在上面class中,如果我要设置sex的默认值。可以吗?
那么,如果我要创建新的Person,下面的代码好吗?
Person p = new Person("mike");
String sex = p.getSex();
您可以在 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 而不是标准构造函数。
通过将字段定义为 final 并仅通过构造函数分配值来使您的 class 线程安全总是好的。
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;}
}
class Person {
private String name;
private String sex="male";
public Person(String name) {
this.name = name;
}
public String getSex(){return this.sex;}
}
在上面class中,如果我要设置sex的默认值。可以吗? 那么,如果我要创建新的Person,下面的代码好吗?
Person p = new Person("mike");
String sex = p.getSex();
您可以在 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 而不是标准构造函数。
通过将字段定义为 final 并仅通过构造函数分配值来使您的 class 线程安全总是好的。
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;}
}