Есть Class1
public class Class1 {
private Class2 class2;
public Class2 getClass2() {
return class2;
}
public void setClass2(Class2 class2) {
this.class2 = class2;
}
}
Есть Class2
в котором я имею ссылку на Class1
. Как при вызове class1.setClass2();
передать в метод именно ссылку на class2
?
Я знаю, что можно сделать в Class2
так: Class2 c = new Class2();
, и передать в метод с
, но, как я понимаю, это будет уже новый экземпляр класса, а не текущий, из которого я делаю вызов? Как передать ссылку на самого себя?
Вам нужно использовать слово this
. Слово this
- это ссылка на объект, в котором оно применяется.
Вы можете сделать так:
//где то в Class2
Class1 cl1 = ...;
cl1.setClass2(this);
Можете почитать пару статей на эту тему, например, эту.
Кстати, если бы у вас Class1
наследовался от Class2
(ну мало ли), то вы могли бы присвоить ссылку переменной таким образом:
//где-то в Class1
public void setClass2() {
class2 = super;
}
Потому что слово super
хранит ссылку на объект-родитель.
P.S. Да, тогда это будет уже новый объект:
Я знаю, что можно сделать в Class2
так: Class2 c = new Class2();
,
и передать в метод с
, но, как я понимаю, это будет уже новый
экземпляр класса, а не текущий, из которого я делаю вызов?
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Создал Gateway сервис и сервис товаров, все конектится через eurekaвот зависимость для gateway
Задание:
Переместите framesetVisible(true); в последнюю строку метода