当前位置:  开发笔记 > 编程语言 > 正文

在Java文件中定义类

如何解决《在Java文件中定义类》经验,为你挑选了4个好方法。

我在Java程序中发现了一个错误:

必须在自己的类中定义公共类型abc类

我该如何解决这个错误?我正在使用Eclipse.我是Java编程的新手.



1> Yuval Adam..:

每个源文件必须只包含一个公共类.名为的类ClassName应该在一个名为的文件中ClassName.java,并且只应在那里定义该类.

这种情况的例外是匿名和内部类,但理解您是Java的初学者,这是一个高级主题.现在,每个文件保留一个类.

回答你的补充:继承类是可以的,这完全没问题.这没关系,每个类应该还有自己的文件.



2> Jon Skeet..:

公共顶级类(即未嵌套在其他类中的公共类)必须在与类名匹配的文件中定义.所以"Foo"类的代码必须存在于"Foo.java"中.

从语言规范,第7.6节:


当包存储在文件系统(第7.2.1节)中时,如果在由类型名称加上名称的文件中找不到类型,主机系统可以选择强制执行编译时错误的限制.如果满足以下任一条件,则为扩展名(例如.java或.jav):

该类型由声明类型的包的其他编译单元中的代码引用.

该类型被声明为public(因此可以从其他包中的代码访问).


这条规则,它不具有所应遵循的编译器,是非常普遍遵守.



3> Michael Myer..:

好吧,也许一个例子会有所帮助.

在文件MySuperClass.java中:

public class MySuperClass {
    // whatever goes here
}
public class MySubClass1 extends MySuperClass {
    // compile error: public class MySubClass1 should be in MySubClass1.java
}
class MySubClass2 extends MySuperClass {
    // no problem (non-public class does not have to be in a file of the same name)
}

在文件MySubClass3.java中:

public class MySubClass3 extends MySuperClass {
    // no problem (public class in file of the same name)
}

这会让事情更清楚吗?



4> krosenvold..:

名为"abc"的公共类必须位于名为abc.java的文件中

推荐阅读
kikokikolove
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有