熟悉编程和java
使用私人ctor创建了一个简单的类,如下所示
package learn;
public class Recherche {
final int iInteger = 0;
private Recherche() {
}
}
这是从项目入口点调用的,如下所示
package learn;
public class Tutorial {
public static void main(String[] args) {
System.out.println("Hello Windows 7x64");
Recherche rech;
rech = null;
}
}
final int iInteger = 0;
位于Recherché课程的断点
在默认的ctor声明为private
的情况下,我希望应用程序无法编译,或者在执行时因异常而死亡。然而两者都完美无缺。
是否在编译时优化了对象,从而忽略了ctor?
答案 0 :(得分:4)
使用此行
Recherche rech;
你做了不创建一个Recherche
对象;只是一个参考变量。这里没有任何对象:
rech = null;
没有调用构造函数来优化;没有对象,也没有int
实例变量来优化。
添加一个实际创建对象的调用将导致构造函数的编译错误:
rech = new Recherche(); // can't access private constructor
答案 1 :(得分:0)
使用new运算符创建类的对象,您将找到答案
Recherche obj = new Recherche();