明示的なコンストラクターを指定していない場合にのみCompiler
、クラスにを提供することを忘れないでください。default constructor
パラメーター化された、または 0-arg の独自のコンストラクターを宣言するとすぐに、コンパイラーはデフォルトのコンストラクターを提供しません。
コードで、パラメーター化されたコンストラクターを宣言しましたが、コンパイラーはデフォルトのコンストラクターを提供しません。したがって、実際には引数なしのコンストラクターがないため、使用できません。
2行目を削除すると、エラーなしで実行されます。ただし、デフォルトのコンストラクターは追加しませんでした。なんで ?
もちろん、行 2を削除すると、明示的なコンストラクターが宣言されていません。この場合、コンパイラーはデフォルトの引数 0 のコンストラクターを追加するため、コードは成功します。また、デフォルトのコンストラクターはコンパイラーによって提供されるものであることに注意してください。引数 0 のコンストラクターを宣言すると、それはデフォルトのコンストラクターではなく、引数0のコンストラクターと呼ばれます。
0-arg constructor
したがって、パラメーター化されたコンストラクターを宣言するときはいつでも、もちろんそれを使用している場合は、明示的に宣言することも確認してください。
public MyClass() {
}