@siRius32

Что хранится в поле?

Есть класс "A", который в своем методе передает себя в конструктор другому классу "В". В классе "B" есть поле для класса "A". Класс "В" в своем методе передает дальше в конструктор класса "C" поле с классом "A", в классе "C" также есть поле для класса "A". Класс "C" дальше передает поле с классом "A" классу "D" и т. д. Что хранится в полях "a", один и тот же один объект? или создаются копии? И правильно ли так далеко передавать через все классы?
public class classA  {
    classB b;
    publc void init(){
        b = new classB(this);  
    }
}

public class classB  {
    classA a;
    classC c;
    publc classB (classA a){
        this.a = a;
    }
    publc void init(){
        c = new classC(a);  
    }
}

public class classC  {
    classA a;
    classD d;
    publc classC (classA a){
        this.a = a;
    }
    publc void init(){
        d = new classD(a);  
    }
}
  • Вопрос задан
  • 136 просмотров
Пригласить эксперта
Ответы на вопрос 1
@nirvimel
Что хранится в полях "a", один и тот же один объект?

Да.

или создаются копии?

Копии могут создаваться только через сlone() или через сериализацию+десериализацию.

И правильно ли так далеко передавать через все классы?

В самой передачи параметра через конструктор и хранении одного объекта в поле другого ничего криминально нет.
На сколько это оправданно в конкретной ситуации зависит от задачи, которую вы решаете. Может оказаться и так что и вся ваша система классов неуместна для решения некоторой задачи.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы