如果我有一个公共课,请将其称为ClassA
,这需要另一个课程,称之为ClassB
,并且:
1)我的程序中没有其他类需要访问ClassB
。
2)ClassB
不需要静态访问ClassA
的状态。
如果这两点有效,是否ClassB
应该是 public static class ClassB {
中的public class ClassA {
,还是ClassB
是否应该class ClassB {
是ClassA
答案 0 :(得分:2)
因为它不会在ClassA
之外使用,所以最好是:
private class ClassB {
}
答案 1 :(得分:2)
ClassB
独立于ClassA
执行可定义的有用工作吗?如果它只是ClassA
实现的一部分,请在ClassA
中将其定义为私有静态类。如果它具有独立意义,请将其定义为顶级类,具有包或公共访问权限,具体取决于其潜在用途的范围。
答案 2 :(得分:0)
由于ClassB不需要静态访问ClassA的状态,因此classB可以是私有内部类。
非静态嵌套类(内部类)可以访问其他成员 封闭类的,即使它们被宣布为私有。静态的 嵌套类无权访问封闭的其他成员 类。作为OuterClass的成员,可以声明嵌套类 私人,公共或受保护的。 (来自javadoc)