как вызвать метод Owner? - PullRequest
       1

как вызвать метод Owner?

0 голосов
/ 21 марта 2010

У меня есть Class1, который имеет методы:

  1. setSomething()
  2. createObjectOfClass2()

Теперь, когда я создаю объект Class2, можно ли вызвать из него метод setSomething?

Ответы [ 3 ]

2 голосов
/ 21 марта 2010

Если хотите, но вы вводите связывание, которое впоследствии затруднит разделение функций. Просто сделайте setSomething публичным и передайте ссылку на первый объект второму конструктору.

public class Class1 {
    Class2 object2 = null;

    public void setSomething(Object something) { ... }

    public void createObjectOfClass2() {
        object2 = new Class2(this);
    }
}

public class Class2 {
    public Class2(Class1 parent) {
        parent.setSomething(new Foo());
    }
}
0 голосов
/ 21 марта 2010

Call Parent.this.method ()

например:.

public class K1
{
public class K2
    {
    public void hello()
        {
        K1.this.setSomething();
        }

    } 

public void setSomething()
   {
   System.out.println("Set Something");
   }

public K2 createObjectOfClass2()
   {
   return new K2();
   }

public static void main(String args[])
   {
   new K1().createObjectOfClass2().hello();
   }


}
0 голосов
/ 21 марта 2010

Если Class2 не расширяет Class1, то вы можете вызвать setSomething () для любого экземпляра Class1, если это не статический метод:

Class1 c = new Class1();
c.setSomething();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...