私の仮定:
- 静的メソッドは非静的メソッドを呼び出すことはできません。
- コンストラクターは、戻り型のないメソッドの一種です。
この例を考えると...
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()
サンプルコードがこれら2つのことを行ったのはなぜですか?それらは私の上記の仮定と矛盾しませんか?私の仮定は正しいですか?