008-002-004
複雑なオブジェクト操作: 銀行口座クラスで引数・戻り値・状態管理を統合したメソッド実行
上級
問題説明
この問題では: BankAccountの各操作をステートレスなメソッドとして実装します。残高・利率・金額をすべてパラメータとして受け取り、計算結果を戻り値として返します。
解説: 引数・戻り値を使ったメソッド設計
この問題では、パラメータとして渡されたデータから計算結果を返す純粋なメソッドを学びます。
学習のポイント
- 引数による状態入力:
balanceやrateを引数で受け取る - double型の計算と戻り値: 利息・残高などの計算結果を返す
- 条件付き戻り値: 残高に応じたステータス文字列を返す
- ステートレス設計: インスタンス変数なし、同じ引数→同じ結果
コード例の解説
public double calculateInterest(double balance, double rate) {
if (rate <= 0 || rate > 1) {
System.out.println("Error: Invalid interest rate");
return 0;
}
return balance * rate; // 利息額を返す
}このメソッドは残高と利率を引数で受け取り、利息額を計算して返します。クラスに状態を保存しません。
ステータス判定の例
public String getAccountStatus(double balance) {
if (balance >= 1000) {
return "Premium";
} else if (balance >= 500) {
return "Standard";
} else {
return "Basic";
}
}学んだこと
ステートレスなメソッド設計では、必要なデータをすべて引数で渡し、計算結果のみを戻り値として返します。同じ引数なら常に同じ結果が得られるため、テストや理解が容易です。
