入金メソッド
CoddyのLuaジャーニー「オブジェクト指向プログラミング」セクションの一部 — レッスン 20/70。
チャレンジ
簡単Digital Bankプロジェクトをスタートします。新しいシステムに機能を追加していきましょう!アカウントが初期残高0で作成できるようになったので、預金(deposit)によってお金を受け取る機能を追加しましょう。
既存の Account クラスを拡張し、アカウントの balance を指定された量だけ増加させる :deposit(amount) メソッドを追加します。これは基本的な銀行操作です。お金が入ると balance が増えます!
2つのファイル:
Account.lua::deposit(amount)メソッドを追加して Account クラスを拡張します。このメソッドは与えられた amount をself.balanceに加算する必要があります。前回のレッスンで作成した内容(クラス構造と:new()コンストラクタ)はすべて残しておきます。main.lua: Account モジュールを require し、アカウントを作成して預金をいくつか行い、balance がどのように変化するかを表示します。
3つの入力を受け取ります:
- 1回目の預金額
- 2回目の預金額
- 3回目の預金額
main ファイルでアカウントを1つ作成し、順番に3回の deposit を実行します。各預金の後に、現在の balance を改行して print してください。
例えば、入力が 100、50、25 の場合、出力は次のようになります:
100
150
175各預金が前の残高に加算されていく点に注意してください。アカウントは0から始まり、最初の預金後に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())
-- アカウントを1つ作成する
local account = Account:new()
-- 3回の入金を行い、それぞれ後に残高を表示する
-- TODO: deposit1を入金してaccount.balanceを表示する
-- TODO: deposit2を入金してaccount.balanceを表示する
-- TODO: deposit3を入金してaccount.balanceを表示する