【问题标题】:Should or Must in Java file name [closed]Java文件名中的应该或必须[关闭]
【发布时间】:2019-05-21 01:10:36
【问题描述】:

我正在学习Java,刚刚遇到2条指令:

  1. 必须具有匹配的文件名
  2. 请记住,java 文件的名称应该与类名匹配

问:

应该在 (2) LIKE不同 必须 在 (1) ?? -> (1), (2).

什么是正确的??

【问题讨论】:

  • 这不是技术问题。按照惯例,java 文件名与类名匹配,它有助于识别哪个类存在于何处。此外,如果这是一个家庭作业问题,这会让你无处可去。
  • 我只希望它是强制性的还是非强制性的
  • 试一试...尝试创建一个类Node并将其存储在一个名为Note.java的文件中,然后尝试编译它。
  • 这个网站的目的是帮助解决编程中的客观问题。阅读How to ask questions
  • 然后认识到,仅仅因为一些编译器对此有规则,除了这些编译器规则的约定之外没有其他原因。 JLS 中简要提及:docs.oracle.com/javase/specs/jls/se8/html/jls-7.html#jls-7.6

标签: java class class-names


【解决方案1】:

准确地说:

  • public 类 X 必须位于 X.java(请参阅用户 Hulk 对这个“必须”的精彩回答)
  • 除此之外,非公共类 Y、Z应该位于 Y.javaZ.java,但它们可以也进入 X.java

例如,Google 编码标准就强调了第二条规则。每个文件应该有一个顶级类,然后类名应该与文件名匹配。

做任何其他事情很可能会让任何有经验的 Java 程序员感到困惑。让你的读者感到困惑总是一个坏主意。

【讨论】:

  • 感谢您的回答!!!。我将应用该规则。我只是想了解更多
  • 如前所述,那么请接受其中一个答案:-)
【解决方案2】:

正如 cmets 中提到的,这并不像最初看起来那么清楚,部分原因是 JLS 不要求将包存储在文件系统中:

7.6. Top Level Type Declarations :

当且仅当包存储在文件系统中(第 7.2 节)时,如果在由如果满足以下任一条件,则类型名称加上扩展名(例如 .java 或 .jav):
[...]

所以你的答案基本上是:

可能是“必须的”,这取决于你的编译器。

【讨论】:

  • 投票支持 A) 发布 JLS 内容和 B) 为其他答案留出空间。
猜你喜欢
  • 1970-01-01
  • 2019-06-20
  • 1970-01-01
  • 1970-01-01
  • 2020-10-11
  • 2011-01-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多