我有Class1
,其中有方法:
setSomething()
createObjectOfClass2()
现在,当我创建Class2
的对象时,是否可以从中调用setSomething
方法?
答案 0 :(得分:2)
如果您愿意,但是您正在引入耦合,这将使以后的分离功能变得非常困难。只需使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());
}
}
答案 1 :(得分:0)
如果Class2没有扩展Class1,那么如果它不是静态方法,你可以在Class1的任何实例上调用setSomething():
Class1 c = new Class1();
c.setSomething();
答案 2 :(得分:0)
致电Parent.this.method()
e.g:
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();
}
}