2016-10-28 13 views
2

私はJavaでクラスを持っています。このクラスは、怒鳴る私は他のコンストラクタを持っている間、どのようにデフォルトのコンストラクタを定義できますか?

public Person(String first, String last) { 
    firstName = new SimpleStringProperty(first); 
    lastName = new SimpleStringProperty(last); 
    city = new SimpleStringProperty("Tehran"); 
    street = new SimpleStringProperty("Vali Asr"); 
    postalCode = new SimpleStringProperty("23456"); 
    birthday = new SimpleStringProperty("12345"); 
} 

のようなコンストラクタは、今私が怒鳴る

public Person() { 
    Person(null, null); 
} 

のようなコンストラクタを宣言したいたが、それは私にエラーを与えます。 私は何ができますか? コンストラクタはメソッドではありませんので、あなたがやろうとしているとして、それは方法のように呼び出すことはできませんので おかげ

+4

どのようなエラーが表示されますか? –

+8

代わりに 'this(null、null)'を使用してください。 – Linuslabo

答えて

10

Person(null, null)を呼び出すと、動作しません。あなたがする必要がどのような は、次のような他のコンストラクタを呼び出すためにthis(null, null)を呼び出すことではなく次のとおりです。

public Person() { 
    this(null, null); // this(...) like super(...) is only allowed if it is 
         // the first instruction of your constructor's body 
} 

public Person(String first, String last) { 
    ... 
} 
キーワード this hereについて

詳細。

+2

'this(...)'や 'super(...) 'の呼び出しは常にコンストラクタ内の最初の命令でなければならないことに注意してください。これは、 'this(...)'または 'super(...)'のどちらかを呼び出すことができますが、両方を呼び出すことはできません。 公共人( – Turing85

+1

公衆人(最初の文字列、最後の文字列){STMTS の//セット}){ この(NULL、NULL); } –

関連する問題