我有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