每个源文件必须只包含一个公共类.名为的类ClassName应该在一个名为的文件中ClassName.java,并且只应在那里定义该类.
这种情况的例外是匿名和内部类,但理解您是Java的初学者,这是一个高级主题.现在,每个文件保留一个类.
回答你的补充:继承类是可以的,这完全没问题.这没关系,每个类应该还有自己的文件.
公共顶级类(即未嵌套在其他类中的公共类)必须在与类名匹配的文件中定义.所以"Foo"类的代码必须存在于"Foo.java"中.
当包存储在文件系统(第7.2.1节)中时,如果在由类型名称加上名称的文件中找不到类型,主机系统可以选择强制执行编译时错误的限制.如果满足以下任一条件,则为扩展名(例如.java或.jav):
该类型由声明类型的包的其他编译单元中的代码引用.
该类型被声明为public(因此可以从其他包中的代码访问).
这条规则,它不具有所应遵循的编译器,是非常普遍遵守.
好吧,也许一个例子会有所帮助.
在文件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)
}
Run Code Online (Sandbox Code Playgroud)
在文件MySubClass3.java中:
public class MySubClass3 extends MySuperClass {
// no problem (public class in file of the same name)
}
Run Code Online (Sandbox Code Playgroud)
这会让事情更清楚吗?
| 归档时间: |
|
| 查看次数: |
6652 次 |
| 最近记录: |