入金メソッド
CoddyのLuaジャーニー「Object Oriented Programming」セクションの一部 — レッスン 20/70。
チャレンジ
簡単デジタルバンクに機能を追加する時が来ました!アカウントを初期残高0で作成できるようになったので、次は預金(デポジット)によってお金を受け取る機能を追加しましょう。
既存の Account クラスをベースに、指定された金額だけアカウントの残高を増やす :deposit(amount) メソッドを追加します。これは銀行の基本操作です。お金が入り、残高が増えていきます!
使用する2つのファイル:
Account.lua::deposit(amount)メソッドを追加して Account クラスを拡張します。このメソッドは、指定された金額をself.balanceに加算する必要があります。前のレッスンで作成したもの(クラス構造と:new()コンストラクタ)はすべて保持してください。main.lua: Account モジュールを読み込み(require)、アカウントを作成し、数回の預金を行い、残高がどのように変化するかを表示します。
3つの入力を受け取ります:
- 1回目の預金額
- 2回目の預金額
- 3回目の預金額
メインファイルで、1つのアカウントを作成し、3回の預金を順番に実行してください。各預金の後、現在の残高を新しい行に表示します。
例えば、入力が 100、50、25 の場合、出力は以下のようになります:
100
150
175各預金が前の残高にどのように積み重なっていくかに注目してください。アカウントは0から始まり、1回目の預金で100になり、2回目で150、3回目で175へと増えていきます。あなたの :deposit() メソッドが、この累積を実現させます!
自分で試してみよう
-- Accountモジュールを読み込む
local Account = require('Account')
-- 3つの入金額を読み込む
local deposit1 = tonumber(io.read())
local deposit2 = tonumber(io.read())
local deposit3 = tonumber(io.read())
-- 単一の口座を作成する
local account = Account:new()
-- 3回の入金を実行し、それぞれの後の残高を表示する
-- TODO: deposit1を入金し、account.balanceを表示する
-- TODO: deposit2を入金し、account.balanceを表示する
-- TODO: deposit3を入金し、account.balanceを表示する