假设我在另一个班级Child
内有一个私人(内部)班级Parent
:
public class Parent {
private boolean isBusy;
private Child child = new Child();
public void doSomething() {
child.playToy();
}
private class Child {
protected void playToy() {
isBusy = true;
}
}
}
如上所述,Parent
类具有布尔实例变量isBusy
,私有内部类Child
具有更新该布尔值的函数playToy()
。从内部类更新上层类中定义的实例变量是糟糕的做法吗?如果这是不好的做法,有什么缺点?
答案 0 :(得分:3)
因为它是一个私人课程,它只会在外部课程中实例化,所以我没有看到任何缺点。这个概念实际上很常见,例如内部类扩展了一个操纵外部字段的监听器。
答案 1 :(得分:1)
由于Child
是私有类,并且只能由Parent
实例化,因此我没有看到任何缺陷。
当然,如果你在Child
实现中处理Parent
的多个实例,而不是你需要处理并发,但这取决于你正在做的事情。
答案 2 :(得分:0)
不,没有问题。您可以根据需要更改变量的值。