关于下面的示例代码,虽然Test类内部的Test()构造函数是public的,但是Test类本身不是public的,所以Test()构造函数不能从它自己的包之外被调用。
这是否会使 public 关键字变得多余?如果是这样,我想知道为什么 javac 在其访问被隐式声明为默认值(“包私有”)的类中使用时不发出关于公共冗余使用的警告?
Test.java,包测试——
package test;
class Test {
public Test() {}
}
Main.java,包 main -
package main;
class Main {
public static void main(String[] args) {
new test.Test(); // Expected error
}
}
编辑:
需要明确的是:当我编译 Test.java 时,我没有收到任何警告。