繁体   English   中英

Class 是公开的,应在名为 .java 的文件中声明

[英]Class is public, should be declared in a file named .java

我遇到了这个问题,我不确定为什么会这样。

“Account 类是公开的,应该在名为 Account.java 的文件中声明”

我的程序中有 5 个类,都在同一个文件中并且都是公开的:

  • Class 称为 Main,其中包含主要方法
  • Class 叫Account is abstract
  • 扩展抽象 class 的 3 个类 Account1、Account2、Account3

我将我的文件命名为 Main.java,它给了我这个错误。 然后我将我的文件命名为Account.java,我又遇到了同样的错误。

我应该怎么办?

  1. 每个源代码文件只能有一个公共类。
  2. 如果文件中有公共类,则文件名必须与公共类的名称匹配。 例如,声明为 public class Dog { } 的类必须位于名为 Dog.java 的源代码文件中。

您应该将文件拆分为 5 个文件,以便每个文件只有一个类。

这应该不难解决,因为您已经提供了答案。 在一个 java 文件中不能有 2 个分开的公共类。 因此建议:为您的帐户类创建一个文件 Account.java。 如果您将这个类保存在同一个包中,则无需执行其他操作。

我只是偶尔遇到你的情况,我就在oracle上查看网站

显而易见的是,在 .java 文件中,你所有的 5 个类都是顶级的,所以

class 可以用修饰符 public 声明,在这种情况下,class 对任何地方的所有类都是可见的。 如果 class 没有修饰符(默认,也称为 package-private),它仅在其自己的 package 内可见(包被命名为相关类的组——您将在后面的课程中了解它们。)

所以你当然可以把你的类放到另一个 .java 文件中,或者你可以只删除你的 class 的前缀或修饰符,你的代码将运行,但 class 只能在此包内访问!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM