Задать вопрос
LoneRay
@LoneRay
Начинающий кодировщик.

Как запустив единожды class1 использовать созданные значения в других классах не используя конструктор?

Я с классами не могу понять одной вещи. Допустим у меня есть class1, class2, class3,class4. Запустили мы class1, в этом классе проинициализировали class2. Как теперь при вызове class3, а потом class4 получить уже проинициализированные объекты class2 в class1 не используя конструкторы?
  • Вопрос задан
  • 181 просмотр
Подписаться 1 Оценить 4 комментария
Решения вопроса 3
zolt85
@zolt85
Программист
Чем не устраивает передача объектов class1, class2 через конструктор в class3, class4 ?
Можно завести в class3, например, поле с типом class1, и сделать setter для этого поля. Тогда, после инициализации class3, Вам нужно будет через setter положить в него экземпляр class1.

Для более "изящных" способов народ использует Dependency Injection. В Spring, например, годный DI механизм. И если заглянуть в его потроха, то Вы убедитесь, что он поступает именно описанными мной вариантами: внедрение зависимости через конструктор, либо через setter. Нет, есть еще конечно Reflection, но Вам, наверное, это пока не интересно.

Все выше описанное справедливо для разработки на Java.
Ответ написан
Shockoway
@Shockoway
Можно завести некий Class5 со статическими полями Class1, Class2... и обращаться к ним через него.
Ответ написан
LoneRay
@LoneRay Автор вопроса
Начинающий кодировщик.
Решил таким способом как и говорил Евгений. Спасибо за помощь всем.
в class1
if(open == null)
		{
			open= new Window();
			open.show();
			setter.set(open);
		}
------------------Отдельный класс
public class setter {
	private static Window win;
	public static void set(Window winnew){
		win = winnew;
	}
	public static Window get(){
		return win;
	}
}
---------------------------
в class2 
setter.get().jLabel2.setText("Text");
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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