Java:自动为每个类创建.class文件

时间:2014-01-27 22:14:58

标签: java

假设我在同一个文件中有两个类(公共类和私有类)的A.java。

public class A{
    public static void main(string[] args){
        ...
    }
}

class B{
    ...
}

为什么Java在编译A.java时会自动自动创建A.class和B.class?

是否要避免这类问题? https://stackoverflow.com/a/2336762/2034015

  

如果Foo.java引用Baz而不是Bar,会发生什么,我们会尝试   编译Foo.java?编译失败,出现如下错误:

     

Foo.java:2:找不到符号符号:class Baz location:class Foo   私人Baz baz;             ^ 1错误

另外,我知道使用Java的正确方法是每个类的文件,但我想知道为什么Java会这样做。

1 个答案:

答案 0 :(得分:4)

Java的工作原理是从您的源代码生成的.class文件。每个文件只能有一个公共类,但是许多其他类(包括内部/匿名/静态等 - 内部类的名称前面有$,前面是外部类,匿名只有$之后的数字)一个文件仍然会被编译为更多的类。因此关系为source filebyte-code file - 1 : n