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

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

جزء من قسم Object Oriented Programming في رحلة Lua على Coddy — الدرس 23 من 70.

challenge icon

التحدي

سهل

أصبح بنكك الرقمي أكثر احترافية! الآن دعنا نجعل حساباتك تعرض نفسها بشكل جميل عند طباعتها. من خلال إضافة ميثود التعريف __tostring، يمكنك التحكم بدقة في كيفية ظهور الحساب — حيث تعرض كلاً من معرف الحساب (ID) والرصيد الحالي بتنسيق نظيف وسهل القراءة.

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

  • Account.lua: قم بتوسيع فئة الحساب (Account class) بميزتين جديدتين:
    • تعديل منشئ الكائنات :new() ليقبل معامل id الذي يحدد هوية كل حساب.
    • إضافة ميثود التعريف __tostring التي تعيد سلسلة نصية منسقة تعرض معلومات الحساب.
    احتفظ بجميع الوظائف الحالية (ميثودات deposit و withdraw و getBalance).
  • main.lua: قم بإنشاء حسابات بمعرفات (IDs) ووضح كيف تعرض نفسها عند طباعتها.

يجب أن تعيد الميثود __tostring سلسلة نصية بهذا التنسيق الدقيق:

Account [ID]: Balance = BALANCE

حيث ID هو معرف الحساب و BALANCE هو الرصيد الحالي.

ستتلقى أربعة مدخلات:

  1. معرف الحساب الأول
  2. مبلغ الإيداع للحساب الأول
  3. معرف الحساب الثاني
  4. مبلغ الإيداع للحساب الثاني

في ملفك الرئيسي، قم بإنشاء حسابين بالمعرفات المعطاة، وأودع المبالغ المعنية في كل منهما، ثم اطبع كل حساب مباشرة باستخدام 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())

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

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

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

جميع دروس Object Oriented Programming