معلومات الحساب
جزء من قسم Object Oriented Programming في رحلة Lua على Coddy — الدرس 23 من 70.
التحدي
سهلأصبح بنكك الرقمي أكثر احترافية! الآن دعنا نجعل حساباتك تعرض نفسها بشكل جميل عند طباعتها. من خلال إضافة ميثود التعريف __tostring، يمكنك التحكم بدقة في كيفية ظهور الحساب — حيث تعرض كلاً من معرف الحساب (ID) والرصيد الحالي بتنسيق نظيف وسهل القراءة.
ستستمر في البناء على ملفاتك الحالية:
Account.lua: قم بتوسيع فئة الحساب (Account class) بميزتين جديدتين:- تعديل منشئ الكائنات
:new()ليقبل معاملidالذي يحدد هوية كل حساب. - إضافة ميثود التعريف
__tostringالتي تعيد سلسلة نصية منسقة تعرض معلومات الحساب.
- تعديل منشئ الكائنات
main.lua: قم بإنشاء حسابات بمعرفات (IDs) ووضح كيف تعرض نفسها عند طباعتها.
يجب أن تعيد الميثود __tostring سلسلة نصية بهذا التنسيق الدقيق:
Account [ID]: Balance = BALANCEحيث ID هو معرف الحساب و BALANCE هو الرصيد الحالي.
ستتلقى أربعة مدخلات:
- معرف الحساب الأول
- مبلغ الإيداع للحساب الأول
- معرف الحساب الثاني
- مبلغ الإيداع للحساب الثاني
في ملفك الرئيسي، قم بإنشاء حسابين بالمعرفات المعطاة، وأودع المبالغ المعنية في كل منهما، ثم اطبع كل حساب مباشرة باستخدام 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
4مشروع: بنك رقمي
إعداد المشروعطريقة الإيداع7تعدد الأشكال وإعادة التعريف
إعادة تعريف الدوالاستدعاء دوال الفئة الأبDuck Typingواجهة مشتركةالتحقق من النوعمراجعة - أدوار الموظفين2نمط النموذج الأولي للفئات
مفهوم النموذج الأوليالربط باستخدام __indexالمنشئ :new()تهيئة الخصائصنسخ مستقلةملخص - مصنع السيارات5تحميل المعاملات في OOP
جمع الكائناتطرح الكائناتدمج الكائناتمقارنة الكائنات (<, >)مراجعة - رياضيات المحفظة8التغليف
اصطلاحات التسميةاستخدام Closures للخصوصيةالوصول عبر Closuresجداول للقراءة فقطمنطق التحقق من الصحةمراجعة - الخزنة الآمنة11أنماط التصميم (مبسط)
دوال المصنعجدول Singletonنمط الـ Iteratorالمراقب (المستمع)مراجعة - مصنع الـ Logger3حالة الكائن وسلوكه
متغيرات النسخةدالات الجلب (Getter Methods)دالات التعيين (Setter Methods)الخصائص المحسوبةتنسيق النصوصالتحقق من المساواةمراجعة - درجة الطالب6أساسيات الوراثة
إعداد الوراثةوراثة الـ Methodsتوسيع الـ Constructorإضافة Methods للابنالمشترك مقابل الفريدملخص - التسلسل الهرمي للأشكال