我正在尝试使用组合来分解功能,但不确定如何引用“封装”类(不确定在组合中调用了什么级别)。这是一个人为的示例,其中 Body 可以看到 Leg 方法,但 Leg 不能看到 Body 方法。我是否必须更改访问修饰符或以不同方式实例化?提前致谢。
public class Body {
private Leg leg;
public Body() {
leg = new Leg();
}
public void takeStep() {
leg.move();
}
public Boolean isStanding() {
return true;
}
public static void main(String[] args) {
Body body = new Body();
body.takeStep();
}
}
``
public class Leg {
public void move() {
if(body.isStanding()) // PROBLEM: no access to body
; // <extend details>
}
}