C#でカプセル化された銀行口座を作る
このレッスンでは、外からは読み取り専用のプロパティと、チェック付きの入金メソッドで口座の残高を守ります。
はじめに
この練習ではカプセル化を使います。外から残高を直接変更させる代わりに、クラスは入金のような正しい操作だけを提供します。そのため、マイナスの金額は入金できないといった業務のルールが常に守られます。
プロパティBalanceのsetはprivateなので、外からは読むだけで値を代入できません。Depositメソッドは金額が0より大きいことを確認し、そうでなければArgumentOutOfRangeExceptionを投げます。口座は100で開設され、50を入金するので、表示される残高は150です。
実行できる C# の例
C#
Program.cs
using System;
class BankAccount(decimal opening)
{
public decimal Balance { get; private set; } = opening;
public void Deposit(decimal amount)
{
if (amount <= 0) throw new ArgumentOutOfRangeException(nameof(amount));
Balance += amount;
}
}
class Program
{
static void Main() { var account = new BankAccount(100); account.Deposit(50); Console.WriteLine(account.Balance); }
}
150デバッガーで練習する
大事な代入や条件にブレークポイントを置いて Debug を押し、次の行に進む前にローカル変数の値を確かめましょう。
チャレンジで練習する
このレッスンの内容を使って実際の問題を解きましょう。各チャレンジはブラウザで動き、すぐにテストされ、AI のレビューも受けられます。
すべてのチャレンジ