我的假设:
- 静态方法无法调用非静态方法。
- 构造函数是一种没有返回类型的方法。
鉴于以下示例...
public class Main {
public static void main(String[] args) {
Main p = new Main(); // constructor call
k(); // [implicit] `this` reference
}
protected Main() {
System.out.print("1234");
}
protected void k() {
}
}
- 这一行代码打印了1234:
Main p = new Main()
- 这一行代码抛出一个异常:
k()
为什么示例代码会执行这样的两个操作?它们是否与我的前提相矛盾?我的前提是正确的吗?