【发布时间】:2016-10-20 18:52:57
【问题描述】:
假设我有这样的课程:
public class OuterClass {
//...
private class InnerClass {
private int x; // This variable makes sense
public int y; // Is there any use for this?
}
}
在上面的代码中,由于内部类是私有的,所以只有外部类可以访问它的所有变量,甚至是私有的。除了封闭的外部类,内部类本身对任何其他类都不可见。
因此,即使上面的变量y 是公共的,它也不能被外部类以外的任何其他类访问。
似乎私有内部类中的所有访问修饰符默认都是私有的,不是吗?
那么考虑到这一点,是否有任何理由为内部类的任何成员声明访问修饰符?
【问题讨论】:
-
public class InnerClass2 extends InnerClass {}(虽然我不推荐这个) -
@fabian 那有什么作用? InnerClass2 仍然可以访问
InnerClass的所有公共和私有字段。 -
这样你可以创建
InnerClass的public子类的实例,它可以访问它的超类的public成员。虽然想不出真正的用例...... -
@fabian 啊,没想到,谢谢
-
相关 - 几乎重复 stackoverflow.com/questions/6264657/…
标签: java private inner-classes