kaylil_01 Asked:2020-01-15 07:14:37 +0000 UTC2020-01-15 07:14:37 +0000 UTC 2020-01-15 07:14:37 +0000 UTC 一个 .class 文件中的多个公共类 772 为什么不能在一个 .java 文件中创建多个公共类?为什么可以在没有访问修饰符的情况下创建? PS我提前为一个可能愚蠢的问题道歉,但我在网上找不到答案。 java 2 个回答 Voted Best Answer Barmaley 2020-01-15T14:35:30Z2020-01-15T14:35:30Z 这是 Java 约定:public class必须将公共类 ( ) 放在名称与类名相同的第一个文件中。 非公共类(带有不带单词声明的类public)可以在第一个文件中随意放置。 您可以在网上阅读很多理论,为什么会出现各种不同的愚蠢版本,但实际上一切都简单得多 - 这只是一个约定:文件组织约定 这只是一个协议的另一个确认是一个简单的事实,即在 Kotlin 和 C# 中没有这样的限制 - 它可以以不同的方式完成。 Tankred 2020-01-15T13:39:37Z2020-01-15T13:39:37Z 因为 .class 文件是编译器的输出。这些文件是由编译器根据您的代码文件(源文件,通常是 .java)创建的,而您又可以在一个文件中声明多个类。 Java中有 4 个作用域(私有、公共、受保护、包私有)。有3 个作用域修饰符(private、public、protected)。需要修饰符来定义范围并且是可选的 - 在这种情况下,默认范围设置为包私有。
这是 Java 约定:
public class必须将公共类 ( ) 放在名称与类名相同的第一个文件中。非公共类(带有不带单词声明的类
public)可以在第一个文件中随意放置。您可以在网上阅读很多理论,为什么会出现各种不同的愚蠢版本,但实际上一切都简单得多 - 这只是一个约定:文件组织约定
这只是一个协议的另一个确认是一个简单的事实,即在 Kotlin 和 C# 中没有这样的限制 - 它可以以不同的方式完成。
因为 .class 文件是编译器的输出。这些文件是由编译器根据您的代码文件(源文件,通常是 .java)创建的,而您又可以在一个文件中声明多个类。
Java中有 4 个作用域(私有、公共、受保护、包私有)。有3 个作用域修饰符(private、public、protected)。需要修饰符来定义范围并且是可选的 - 在这种情况下,默认范围设置为包私有。