我们需要Java中的前向声明吗?
预测以下Java程序的输出。
// filename: Test2.java
// main() function of this class uses Test1 which is declared later in
// this file
class Test2 {
public static void main(String[] args) {
Test1 t1 = new Test1();
t1.fun(5);
}
}
class Test1 {
void fun(int x) {
System.out.println("fun() called: x = " + x);
}
}
输出:
fun() called: x = 5
Java程序编译并运行良好。请注意, Test1和fun()在使用前未声明。与 C++ 不同,我们不需要Java中的前向声明。标识符(类和方法名)会自动从源文件中识别。同样,库方法直接从库中读取,不需要创建带有声明的头文件。 Java使用命名方案,其中包名和公共类名必须分别遵循目录名和文件名。此命名方案允许Java编译器定位库文件。