必须在自己的文件中定义公共类型Dog

时间:2014-02-03 05:54:54

标签: java class public

出于某种原因,我不断收到错误

  

公共类型Dog必须在其自己的文件中定义

当我尝试编译时。这里有谁知道我怎么解决它?谁知道我做错了什么?我试着看一些其他的答案,但它说了一些关于导入东西的奇怪的mumbo jumbo。

3 个答案:

答案 0 :(得分:3)

如果您的文件名和公共类名称不同,则会出现此类错误。

从错误公共类型Dog必须在自己的文件中定义我很确定您的文件名不是Dog.java

答案 1 :(得分:1)

Dog类的代码移动到名为Dog.java的文件中 所有顶级课程,例如要从另一个类调用的public Dog class必须存在于他们自己的特殊命名文件中。

答案 2 :(得分:1)

Each Java compilation unit(所有常见系统中的.java文件)必须只包含一个顶级类型(类,枚举或接口)simple name exactly matches the name of the file没有.java扩展名。

类上的访问修饰符是什么(公共或默认)并不重要,公共嵌套类可以放在顶级类型中,但单个顶级类型必须与文件名匹配。 / p>

(这个要求在技术上是可选的,由编译器实现者自行决定,但我不知道任何编译器没有强制执行它,代码应该总是假设编译器会。)