【问题标题】:Should I use static class within public class, or just a lone class我应该在公共类中使用静态类,还是只使用一个单独的类
【发布时间】:2013-10-15 02:05:24
【问题描述】:

如果我有一个公共课程,就叫它ClassA,这需要另一个课程,叫它ClassB,并且: 1) 我的程序中没有其他类需要访问ClassB。 2)ClassB不需要静态访问ClassA的状态。

如果这两点成立,是否有关于ClassB 是否应该是public static class ClassB { public class ClassA {,或者ClassB 是否应该是class ClassB { 的指导方针ClassA之外

【问题讨论】:

  • 在一般情况下似乎是一个数据解释问题:p

标签: java class static public


【解决方案1】:

因为它不会在ClassA 之外使用,所以最好是:

private class ClassB {

}

【讨论】:

  • 为什么是static 而不仅仅是class
【解决方案2】:

ClassB 是否独立于ClassA 做一项可定义的、有用的工作?如果它只是ClassA 实现的一部分,则在ClassA 中将其定义为私有静态类。如果它具有独立的含义,则将其定义为顶级类,根据其潜在用途的范围具有包或公共访问权限。

【讨论】:

    【解决方案3】:

    由于 ClassB 不需要静态访问 ClassA 的状态,所以 classB 可以是私有内部类。

    非静态嵌套类(内部类)可以访问其他成员 封闭类的,即使它们被声明为私有的。静止的 嵌套类无权访问封闭的其他成员 班级。作为 OuterClass 的成员,可以声明一个嵌套类 私有的、公共的或受保护的。 (来自 javadoc)

    【讨论】:

      猜你喜欢
      • 2013-06-04
      • 2017-10-27
      • 1970-01-01
      • 1970-01-01
      • 2013-09-04
      • 2013-10-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多