出于某种原因,我不断收到错误
公共类型Dog必须在其自己的文件中定义
当我尝试编译时。这里有谁知道我怎么解决它?谁知道我做错了什么?我试着看一些其他的答案,但它说了一些关于导入东西的奇怪的mumbo jumbo。
答案 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>
(这个要求在技术上是可选的,由编译器实现者自行决定,但我不知道任何编译器没有强制执行它,代码应该总是假设编译器会。)