Как инициализировать класс, с помощью объекта
Заранее прошу прощение, если сформулировал вопрос немного некорректно
Vana result = new Vana("Ravak", 1, 2, 3);
Vana instance = new Vana("Ravak", new Rozmer(1, 2, 3));
Нужно сделать конструкторы, которые бы инициализировали клаcc vana(это тест)
Vana(String ravak, double delka, double sirka, double vyska){
super(delka,sirka,vyska);
this.ravak=ravak;
}
public Vana(String ravak, Rozmer rozmer) {
super(rozmer);
this.ravak=ravak;
}
Так выглядит код, который я написал, но только второй инициализатор, где должен проходить объект, выдает ошибку. Я понимаю, что вариант однозначно неправильный, но как взять из него информацию, которую задали в начале?
public Rozmer(final double delka, final double sirka, final double vyska) throws MojeException {
if (!check(delka) || !check(sirka) || !check(vyska)) throw new MojeException("Chyba");
this.delka = Math.round(delka*TO_CM);
this.sirka = Math.round(sirka*TO_CM);
this.vyska = Math.round(vyska*TO_CM);
}
Это конструктор наследственного класса, на который я ссылаюсь. Работать можно только с кодом, где конструкторы
Ответы (1 шт):
Автор решения: Nowhere Man
→ Ссылка
Итак:
- в классе
Rozmerопределён только один конструктор, принимающий все три размера, - в классе
Vana, унаследованном отRozmer, есть работающий конструктор:
class Vana extends Rozmer {
Vana (String ravak, double delka, double sirka, double vyska) {
super(delka, sirka, vyska);
this.ravak = ravak;
}
}
Тогда конструктор класса Vana, принимающий аргумент Rozmer, можно определить так:
// class Vana
public Vana (String ravak, Rozmer rozmer) {
this(ravak, rozmer.delka, rozmer.sirka, rozmer.vyska);
}