Есть 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();,
и передать в метод с, но, как я понимаю, это будет уже новый
экземпляр класса, а не текущий, из которого я делаю вызов?
Продвижение своими сайтами как стратегия роста и независимости