[解決済み] Java デフォルトコンストラクタ
2022-03-01 06:27:39
質問
次のうちどれがデフォルトのコンストラクタで、何が他のコンストラクタと違うのか教えてください。
public Module() {
this.name = "";
this.credits = 0;
this.hours = 0;
}
public Module(String name, int credits, int hours) {
this.name = name;
this.credits = credits;
this.hours = hours;
}
解決方法は?
どちらでもない。定義しても、デフォルトではありません。
デフォルトのコンストラクタは、他のコンストラクタを定義しない限り、自動的に生成される無引数コンストラクタです。初期化されていないフィールドはすべてデフォルト値に設定されます。この例では、型を次のように仮定しています。
String
,
int
と
int
であり、クラスそのものがパブリックであること。
public Module()
{
super();
this.name = null;
this.credits = 0;
this.hours = 0;
}
と全く同じです。
public Module()
{}
また、コンストラクタを全く持たないのと全く同じです。ただし、少なくともひとつのコンストラクタを定義していれば、デフォルトのコンストラクタは生成されません。
参考にしてください。 Java言語仕様
クラスにコンストラクタの宣言がない場合、正式なパラメータと throws 節を持たないデフォルトのコンストラクタが暗黙のうちに宣言されます。
明確化
技術的には、フィールドをデフォルトで初期化するのはコンストラクタ(デフォルトまたはそれ以外)ではないのです。しかし、私はそれを答えとして残しています。
- の質問では、デフォルトを間違えており
- が含まれていてもいなくても、コンストラクタは全く同じ効果を発揮します。
関連
-
[解決済み] 型の不一致:ArrayListからListへの変換ができない
-
[解決済み] Javaにおけるシンボリック参照
-
[解決済み] JavaでInputStreamを読み込んでStringに変換するにはどうすればよいですか?
-
[解決済み] JavaでNullPointerExceptionを回避する方法
-
[解決済み] JavaにおけるHashMapとHashtableの違いは何ですか?
-
[解決済み] Javaでメモリーリークを発生させるにはどうしたらいいですか?
-
[解決済み] Java で、あるコンストラクタを別のコンストラクタから呼び出すにはどうすればよいですか?
-
[解決済み] Javaはパラメータのデフォルト値をサポートしていますか?
-
[解決済み] Javaで数値を小数点以下n桁に丸める方法
-
[解決済み] あるコンストラクタを別のコンストラクタから呼び出す
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] デフォルトのコンストラクタのヘッダはどうなるのでしょうか [重複] 。
-
[解決済み] Java の substring() の時間複雑性
-
[解決済み] 環境変数JAVA_OPTSの使い方を教えてください。
-
[解決済み] 要素 'beans' の宣言が見つかりません。
-
[解決済み] 型の不一致:ArrayListからListへの変換ができない
-
[解決済み] ファイルを作成せずに、ファイルが存在するかどうかをチェックする
-
[解決済み] javaでAnnotation Inheritanceのようなものはあるのでしょうか?
-
[解決済み] Java の文字列インデックスが範囲外です。0 [閉店]
-
[解決済み] publicId と systemId の間に空白が必要です。
-
[解決済み] 文字列の巻き方