gpt4 book ai didi

java - 在类的 "owner"类中调用函数

转载 作者:搜寻专家 更新时间:2023-11-01 01:02:26 26 4
gpt4 key购买 nike

我认为以下伪代码很好地总结了我的问题......

class Owner {
Bar b = new Bar();

dostuff(){...}
}

class Bar {
Bar() {
//I want to call Owner.dostuff() here
}
}

Bar bOwner“拥有”(正确的词是什么?)(它“有一个”)。那么 Bar 类型的对象如何调用 Owner.dostuff() 呢?

起初我想的是 super();,但那是针对继承类的。然后我在想通过一个接口(interface),我在正确的轨道上吗?

最佳答案

如果 dostuff 是一个常规方法,您需要向 Bar 传递一个实例。

class Owner {

Bar b = new Bar(this);

dostuff(){...}
}

class Bar {
Bar(Owner owner) {
owner.dostuff();
}
}

请注意,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
}
}
}

关于java - 在类的 "owner"类中调用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9300446/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com