我的假设:
- 静态方法不能调用非静态方法。
- 构造函数是一种没有返回类型的方法。
鉴于这个例子......
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()
为什么示例代码做了这两件事?它们不与我的上述假设相冲突吗?我的假设是否正确?