【发布时间】:2015-02-19 07:22:22
【问题描述】:
这些天我一直在阅读 Bruce Eckel 的 Thinking in Java,当谈到访问控制一章时,它说如果一个 java 文件有两个或多个类,除了公共类,其他类不能是 private(即将使除班级以外的任何人都无法访问)或protected。
但我看到很多流行的 java 库和开源项目确实使用 private 来装饰这类类。
那么是因为书太理论还是其他什么原因?
原文(第 231 页,第四版)
请注意,一个类不能是私有的(这会使除该类之外的任何人都无法访问它)或受保护的。所以类访问只有两种选择:包访问或公共访问。如果您不希望其他人访问该类,则可以将所有构造函数设为私有,从而防止除您之外的任何人在该类的静态成员中创建该类的对象。
【问题讨论】:
-
我强烈怀疑您只是误读了这本书。
-
我认为 CommonsWare 是对的,无论如何 private 和 protected 可以与内部类(类内的类)一起使用,但不能与不在任何类中的类一起使用
-
这本书已经很旧了;你应该期望它已经过时了。与当前的 Java 相比,那段短文中有几个不准确之处。
-
在那本书的第 3 版中,
... or protected后面有一个脚注标记。脚注文本:实际上,内部类可以是私有的或受保护的,但这是一种特殊情况。这些将在第 7 章中介绍
标签: java class private protected