Мне нужно иметь класс с двумя конструкторами, один с одним и без аргументов. Предполагается, что один из них не должен ссылаться на другие с рандомизированными аргументами, поэтому не по умолчанию.Конструктор вызов contructor с аргументами
Вот некоторые примеры кода:
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 - это ключевое слово, которое отсутствовало, так как оно было неприемлемым в том, что класс не инициализирован. Спасибо! Отправьте это как ответ, и я соглашусь. –