我有Class1
,它擁有一些方法:如何調用所有者的方法?
setSomething()
createObjectOfClass2()
現在,當我創建的Class2
對象,是有可能從它調用setSomething
方法?
我有Class1
,它擁有一些方法:如何調用所有者的方法?
setSomething()
createObjectOfClass2()
現在,當我創建的Class2
對象,是有可能從它調用setSomething
方法?
如果你喜歡,但你介紹的耦合,這稍後會使分離功能變得相當困難。只需公開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());
}
}
'Class2(Class1 parent)' - 參數的名字非常奇怪,其中Class2不是從Class1繼承的。 – Roman 2010-03-21 16:43:18
羅馬:「父母」是原來的標題,所以我去了。我認爲它適合:我個人不喜歡用「父母」作爲「超類」的假名。正如你在另一評論中所說的那樣,「所有者」也適合 - 如果你喜歡,隨時可以改變它。 – 2010-03-21 16:47:14
呼叫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();
}
}
但我不想創建新的實例,我需要從實例調用它,創建類2 – joseph 2010-03-21 16:44:20
-1,你阻撓大家試圖回答一個誤導性的標題,而自己太。 – 2010-03-21 16:44:52
你能舉一個你想要做什麼的具體例子嗎? – 2010-03-21 16:49:28