すべて

010-004 - オーバーロードの活用

オーバーロードは、実用的なプログラムで広く使われている設計手法です。適切に設計されたオーバーロードは、プログラムを使いやすくし、コードの可読性を高めます。

実用的なオーバーロードの設計パターン:

  • デフォルト値パターン: 引数省略時のデフォルト動作を提供
  • 段階的詳細化: 簡易版から詳細版へ段階的にオプションを追加
  • 組み合わせパターン: 個数と型の違いを組み合わせた柔軟な設計

良い設計の例(ゲームキャラクター作成):
public void createCharacter(String name) {
createCharacter(name, 1, "Warrior"); // デフォルト: レベル1、戦士
}
public void createCharacter(String name, int level) {
createCharacter(name, level, "Warrior"); // デフォルト: 戦士
}
public void createCharacter(String name, int level, String job) {
// 完全版の実装: 名前、レベル、職業を全て指定
System.out.println("キャラクター作成: " + name +
" (Lv." + level + ", " + job + ")");
}

このように設計すると、呼び出し側は必要な情報だけを指定でき、使いやすいプログラムとなります。

問題 (10)

無料トライアル
010-004-001

メソッドオーバーロード:スコア集計

# <a href="https://javadrill.tech/problems/010">メソッドオーバーロード</a>:スコア集計 **この問題では**: `int`・`double`・`S...

無料トライアル
010-004-002

メソッドオーバーロード:消費税計算

# <a href="https://javadrill.tech/problems/010">メソッドオーバーロード</a>:消費税計算 **この問題では**: `int`・`double`・`S...

無料トライアル
010-004-003

オーバーロード活用:フォーマットユーティリティ

# オーバーロード活用:フォーマットユーティリティ **この問題では**: 整数・小数・文字列の各型に対応した複数の`format`<a href="https://javadrill.tech/p...

無料トライアル
010-004-004

オーバーロード:printInfoの多目的利用

# オーバーロード:printInfoの多目的利用 **この問題では**: 入力タイプ(name / age / both)に応じて引数の異なる`printInfo`<a href="https:/...

無料トライアル
010-004-005

メソッドオーバーロード:消費税計算

# <a href="https://javadrill.tech/problems/010">メソッドオーバーロード</a>:消費税計算 **この問題では**: `int`・`double`・`S...

無料トライアル
010-004-006

メソッドオーバーロード:スコア集計

# <a href="https://javadrill.tech/problems/010">メソッドオーバーロード</a>:スコア集計 **この問題では**: int・double・String...

010-004-007

メソッドオーバーロード:戻り値型の違い

# <a href="https://javadrill.tech/problems/010">メソッドオーバーロード</a>:戻り値型の違い **学習目標**: オーバーロードにおける戻り値型の役...

010-004-008

オーバーロードで面積計算メソッドを実装

<h2><a href="https://javadrill.tech/problems/010">メソッドオーバーロード</a>: 同じ名前、異なるシグネチャ</h2><p><a href="htt...

010-004-009

オーバーロードの実用例

# オーバーロードの実用例 **この問題では**: 同名の`log`<a href="https://javadrill.tech/problems/008">メソッド</a>を2種類オーバーロード...

010-004-010

メソッドチェーンとオーバーロード

# メソッドチェーンとオーバーロード **この問題では**: `format` <a href="https://javadrill.tech/problems/008">メソッド</a>をオーバー...