Причина, по которой это не удается, заключается в том, что вы устанавливаете this.o2
для новой ссылки на объект.В этой программе у вас есть четыре ссылки и два объекта.
main.o1 -> OBJECT1
main.o2 -> NULL
В начале программы.
В строке this.o2 = main.o2
вы устанавливаете this.o2
как ссылку на main.o2
.Итак, теперь у вас есть:
this.o2 -> main.o2 -> NULL
В строке this.o2 = new myObject("Something");
, this.o2
теперь все вместе ссылается на новый объект.Это дает вам:
this.o2 -> OBJECT2
main.o2 -> NULL
Измените последнюю строку на main.o2 -> new myObject("Something");
, вы получите:
this.o2 -> main.o2 -> OBJECT2
Обратите внимание, это все считается плохой практикой кодирования.Вы никогда не хотите менять статическую переменную из класса.Кроме того, в Android вы, как правило, не хотите получать доступ к вызову действия, подобного этому.