2つのコンストラクタを持つクラスが必要です。 withoutは無作為化された引数で他のものを呼び出すはずですので、デフォルトのものではありません。ここで コンストラクタで引数を指定してコンストラクタを呼び出す
は、いくつかのサンプルコードです:public Human(int ageIn, String nameIn){
this.name = nameIn;
this.age = ageIn;
}
public Human(){
String[] names = {"Peter", "Olof", "Alva", "Sanna", "Carl", "Illona"};
double random = Math.random();
int nameIndex = (int)(names.length*random+0.5);
String name = names[nameIndex];
random = Math.random();
int age = (int)(100*random+0.5);
this(age, name);
}
このハードを作る事がthis()
は、コンストラクタの先頭でなければならないことですが、私は定義して、私ができる前にname
とage
を把握する必要があり最初のコンストラクタを呼び出す。
これを回避する手段はありますか?ありがとうございました!
もっと良い方法があるのかどうかわかりませんが、ランダムなパラメータごとに静的メソッドを作成し、 'this(getRandomAge()、getRandomName()) 'を呼び出すことができます。 – AJPerez
はい、これを試しました。クラスが初期化されていないことを納得していたので、staticはキーワードがありませんでした。ありがとうございました!これを回答として投稿してください。 –