Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

معلومات الحساب

جزء من قسم البرمجة كائنية التوجه في رحلة Lua على Coddy. الدرس 23 من 70.

challenge icon

التحدي

سهل

أصبح بنكك الرقمي أكثر احترافية! والآن لنجعل accounts تعرض نفسها بشكل أنيق عند طباعتها. من خلال إضافة __tostring metamethod، يمكنك التحكم بدقة في كيفية ظهور account: إظهار كلٍّ من معرّف account وcurrent balance بتنسيق واضح وسهل القراءة.

ستواصل البناء على ملفاتك الحالية:

  • Account.lua: وسّع Account class بميزتين جديدتين:
    • عدّل constructor :new() ليقبل id parameter يحدّد كل account
    • أضف __tostring metamethod تُرجع سلسلة منسّقة تعرض معلومات account
    احتفظ بكل وظائفك الحالية (طرائق deposit وwithdraw وgetBalance).
  • main.lua: أنشئ accounts باستخدام IDs ووضّح كيفية عرضها لنفسها عند طباعتها.

يجب أن تُرجع __tostring method سلسلة بالتنسيق الدقيق التالي:

Account [ID]: Balance = BALANCE

حيث إن ID هو معرّف account وBALANCE هو current balance.

ستتلقى four inputs:

  1. معرّف account الأول
  2. مقدار deposit الأول
  3. معرّف account الثاني
  4. مقدار deposit الثاني

في ملفك الرئيسي، أنشئ accountين باستخدام IDs given، ثم أودِع respective amounts في كلٍّ منهما، وبعد ذلك اطبع كل account مباشرةً باستخدام print(). سيتم استدعاء __tostring metamethod تلقائيًا عند طباعة كائن account.

على سبيل المثال، إذا كانت inputs هي 1001 و500 و1002 و750، فيجب أن يكون الناتج:

Account [1001]: Balance = 500
Account [1002]: Balance = 750

أصبح لكل account الآن هوية فريدة، ويمكنه وصف نفسه بوضوح: تجربة مصرفية أكثر احترافية بكثير!

جرّب بنفسك

-- تحميل وحدة Account
local Account = require('Account')

-- قراءة المدخلات الأربعة
local id1 = io.read()
local deposit1 = tonumber(io.read())
local id2 = io.read()
local deposit2 = tonumber(io.read())

-- إنشاء حسابين بالمعرّفات
local account1 = Account:new(id1)
local account2 = Account:new(id2)

-- إيداع المبالغ المعنية
account1:deposit(deposit1)
account2:deposit(deposit2)

-- طباعة كل حساب (يستخدم __tostring)
print(account1)
print(account2)

جميع دروس البرمجة كائنية التوجه

تدرّب بنفسك: مترجم Lua عبر الإنترنت