账户信息
本课属于 Coddy Lua 学习旅程的“面向对象编程”单元。第 23 课,共 70 课。
挑战
简单你的数字银行变得越来越专业了!现在,让我们让账户在打印时能以更清晰的方式显示。通过添加 __tostring 元方法,你可以准确控制账户的显示方式:以简洁易读的格式显示账户 ID 和当前余额。
你将继续完善现有文件:
Account.lua:为 Account 类添加两个新功能:- 修改
:new()构造函数,使其接受用于标识每个账户的id参数 - 添加一个
__tostring元方法,返回一个显示账户信息的格式化字符串
- 修改
main.lua:创建带 ID 的账户,并演示打印时账户如何显示自身。
__tostring 方法应按以下确切格式返回字符串:
Account [ID]: Balance = BALANCE其中,ID 是账户的 ID,BALANCE 是当前余额。
你将收到 4 个输入:
- 第一个账户的 ID
- 第一个账户的存款金额
- 第二个账户的 ID
- 第二个账户的存款金额
在主文件中,使用给定的 ID 创建两个账户,分别向每个账户存入相应金额,然后直接使用 print() 打印每个账户。打印账户对象时,会自动调用 __tostring 元方法。
例如,如果输入是 1001、500、1002 和 750,输出应为:
Account [1001]: Balance = 500
Account [1002]: Balance = 750现在,每个账户都有了独特的身份,也能清楚地介绍自己:这让银行服务体验显得更加专业!
亲手试试
-- 加载 Account 模块
local Account = require('Account')
-- 读取四个输入
local id1 = io.read()
local deposit1 = tonumber(io.read())
local id2 = io.read()
local deposit2 = tonumber(io.read())
-- 创建两个带有 ID 的账户
local account1 = Account:new(id1)
local account2 = Account:new(id2)
-- 分别存入对应的金额
account1:deposit(deposit1)
account2:deposit(deposit2)
-- 打印每个账户(使用 __tostring)
print(account1)
print(account2)
面向对象编程中的所有课
自己练习: Lua 在线编译器