可以设置默认值,然后更改构造函数中的值

时间:2016-03-03 21:35:06

标签: java constructor default-value

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();

2 个答案:

答案 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;}
}