【发布时间】:2019-12-04 17:56:11
【问题描述】:
我正在阅读 Herbert Schildt 撰写的 Java: The Complete Reference, Eleventh Edition, 11th Edition,但无法真正理解作者以下文字的意思:
当它被声明为public时,接口可以被其包外的代码使用。在这种情况下,接口必须是文件中声明的唯一公共接口,并且文件必须与接口同名。
【问题讨论】:
我正在阅读 Herbert Schildt 撰写的 Java: The Complete Reference, Eleventh Edition, 11th Edition,但无法真正理解作者以下文字的意思:
当它被声明为public时,接口可以被其包外的代码使用。在这种情况下,接口必须是文件中声明的唯一公共接口,并且文件必须与接口同名。
【问题讨论】:
不仅仅是接口,
默认情况下,如果您在文件中声明了公共类,则文件和类应该具有完全相同的名称,并且可以在任何地方使用公共“事物”,而不是像“包私有”那样默认的 java 访问修饰符,如果你没有提供,它允许你的类只在它们所在的包中可见。
【讨论】:
这是 Java 原作者的设计决定。通过明确说明,打包和模块化始终反映在源的目录树中,反之亦然。
有人可能会质疑这个决定——我会,这意味着你不能在不破坏整个代码库的代码的情况下重构打包——但这就是它的原因。
【讨论】: