假设我有一个 A.java,其中两个类(公共类和私有类)都位于同一文件中。
public class A{
public static void main(string[] args){
...
}
}
class B{
...
}
Run Code Online (Sandbox Code Playgroud)
为什么Java在编译A.java时会自动创建A.class和B.class?
是为了避免此类问题吗?/sf/answers/163573371/
如果 Foo.java 引用 Baz 而不是 Bar,并且我们尝试编译 Foo.java,会发生什么情况?编译失败并出现如下错误:
Foo.java:2:找不到符号符号:class Baz 位置:class Foo private Baz baz;^ 1 个错误
另外,我知道使用 Java 的正确方法是每个类一个文件,但我想知道为什么 Java 这样做。
Java 的工作原理是从源代码生成的 .class 文件。每个文件只能有一个公共类,但一个文件中可以有许多其他类(包括内部/匿名/静态等 - 内部类的$名称前面有外部类,匿名类后面只有数字$),并且它仍然会被编译为更多类。所以关系是 source file:byte-code file- 1 : n。
| 归档时间: |
|
| 查看次数: |
872 次 |
| 最近记录: |