【发布时间】:2011-02-17 20:28:12
【问题描述】:
我已经在这个论坛上回答了关于公共内部类的各种问题,但是我没有看到任何我想要找到的答案,所以又是一个关于 Java 公共内部类的问题。我正在审查另一个开发人员的代码,这个人使用了很多内部类。这是一个例子
public class A{
private class B
private class C
private class D
:
:
public class B{
}
public class c{
}
public class D{
}
}
所以当我问开发人员她为什么使用内部类时,她告诉我,因为这些类只会被这个类使用,所以她这样做了,我同意这是一个正当的理由,
然而,这个类已经变成了一个“长”类(大约 200 行 getter 和 setter,包括 4-5 个类定义),其中包含一堆内部类。虽然我同意她的理由,但我担心课程的长度。我几乎想告诉她删除内部类并让它们成为自己的类,但现在,这样做的唯一好处是它减少了类的大小。
我个人避免使用内部类,这可能只是一种习惯,或者我只是教条主义,所以我不希望我的个人偏见决定评论。这就是为什么,我想从你们那里知道,我提出的建议还有哪些优点或缺点? (即将他们转移到自己的班级)谢谢。
【问题讨论】:
-
这些内部类是公开的(如问题标题和问题本身所述)还是私有的(如代码示例中所述)?
-
是的,代码和我在代码示例中的一样。之所以将这些内部类称为 public,是因为类定义本身是 public
-
外部类是公共的,但它隐藏了私有内部类。
-
是的,我明白这一点,但是内部的“公共”类定义呢,它们会被设为“公共”,以便外部类可以通过 getter 访问这些类吗?
-
我运行了一个测试程序,它证明了我的上述断言。
标签: java oop class inner-classes