2016-03-03 2 views
-2
class Person { 
    private String name; 
    private String sex="male"; 
    public Person(String name) { 
     this.name = name; 
    } 
    public String getSex(){return this.sex;} 
} 

В вышеуказанном классе, если я хочу установить значение по умолчанию для пола. Это нормально? то, если я хочу создать нового человека, является ли следующий код хорошим?Можно установить значение по умолчанию, а затем изменить значение в конструкторе

Person p = new Person("mike"); 
String sex = p.getSex(); 
+2

Попробуйте и сообщите об этом. – gonzo

ответ

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 вместо стандартных конструкторов.

+0

Обратите внимание, что 'this (whatever)' является специальным ключевым словом, которое гласит: «Называть этот другой конструктор этими аргументами». Насколько я знаю, он действителен только в конструкторах. – Powerlord

0

Всегда полезно сделать поток класса безопасным, определив поля как окончательные и присвойте значения только через конструктор.

Смежные вопросы