Menu
CoddyTech

账户信息

本课属于 Coddy Lua 学习旅程的“面向对象编程”单元。第 23 课,共 70 课。

challenge icon

挑战

简单

你的数字银行变得越来越专业了!现在,让我们让账户在打印时能以更清晰的方式显示。通过添加 __tostring 元方法,你可以准确控制账户的显示方式:以简洁易读的格式显示账户 ID 和当前余额。

你将继续完善现有文件:

  • Account.lua:为 Account 类添加两个新功能:
    • 修改 :new() 构造函数,使其接受用于标识每个账户的 id 参数
    • 添加一个 __tostring 元方法,返回一个显示账户信息的格式化字符串
    保留现有的所有功能(deposit、withdraw 和 getBalance 方法)。
  • main.lua:创建带 ID 的账户,并演示打印时账户如何显示自身。

__tostring 方法应按以下确切格式返回字符串:

Account [ID]: Balance = BALANCE

其中,ID 是账户的 ID,BALANCE 是当前余额。

你将收到 4 个输入:

  1. 第一个账户的 ID
  2. 第一个账户的存款金额
  3. 第二个账户的 ID
  4. 第二个账户的存款金额

在主文件中,使用给定的 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 在线编译器