类声明 - 公开和默认

时间:2013-10-16 11:17:52

标签: java

我想询问java中的类声明是否只能public默认

我已经读过文件中只能有一个public类,该文件应该是该类的名称。

例如Test.java

public class Test {

}

但是我发现在课堂上我没有public课,但可以有很多默认的课。

例如Exam.java

class Exam {

}

class Examination {

}

为什么我只能有一个public类但在一个文件中可以有多个默认类?

2 个答案:

答案 0 :(得分:7)

  

为什么我只能有一个公共课,但可以有很多   一个文件中的默认类?

7.6. Top Level Type Declarations

  

此限制意味着每个最多必须有一个这样的类型   编译单位。 此限制使Java编译器变得容易   在包中找到命名类。在实践中,许多程序员   选择将每个类或接口类型放在自己的编译中   单位,无论是公开的还是由其他代码引用的   编制单位。

如果某个类没有修饰符(默认修饰符),则只能从同一个包中访问它。

答案 1 :(得分:3)

这是另一位回答者指出的设计决定。这有助于您长期组织代码。你可以拥有公共内部课程。