以下伪代码很好地总结了我的问题,我认为......
class Owner {
Bar b = new Bar();
dostuff(){...}
}
class Bar {
Bar() {
//I want to call Owner.dostuff() here
}
}
Run Code Online (Sandbox Code Playgroud)
Bar b是'拥有'(什么是正确的词?)by Owner(它'有一个').那么类型的对象如何Bar调用Owner.dostuff()呢?
起初我在思考super();,但这是继承的类.然后我想通过一个界面,我是在正确的轨道上?
如果dostuff是常规方法,则需要传递Bar实例.
class Owner {
Bar b = new Bar(this);
dostuff(){...}
}
class Bar {
Bar(Owner owner) {
owner.dostuff();
}
}
Run Code Online (Sandbox Code Playgroud)
请注意,Bar可能有很多所有者,而且没有任何现实的方法可以找出他们是谁.
编辑:您可能正在寻找内部类:示例和注释.
class Owner {
InnerBar b = new InnerBar();
void dostuff(){...}
void doStuffToInnerBar(){
b.doInnerBarStuf();
}
// InnerBar is like a member in Owner.
class InnerBar { // not containing a method dostuff.
InnerBar() {
// The creating owner object is very much like a
// an owner, or a wrapper around this object.
}
void doInnerBarStuff(){
dostuff(); // method in Owner
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2151 次 |
| 最近记录: |