معلومات الحساب
جزء من قسم البرمجة كائنية التوجه في رحلة 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)
جميع دروس البرمجة كائنية التوجه
4مشروع: بنك رقمي
إعداد المشروعطريقة الإيداع7تعدد الأشكال وإعادة التعريف
إعادة تعريف الدوالاستدعاء دوال الفئة الأبDuck Typingواجهة مشتركةالتحقق من النوعمراجعة - أدوار الموظفين2نمط النموذج الأولي للفئات
مفهوم النموذج الأوليالربط باستخدام __indexالمنشئ :new()تهيئة الخصائصنسخ مستقلةملخص - مصنع السيارات5تحميل المعاملات في OOP
جمع الكائناتطرح الكائناتدمج الكائناتمقارنة الكائنات (<, >)مراجعة - رياضيات المحفظة8التغليف
اصطلاحات التسميةاستخدام Closures للخصوصيةالوصول عبر Closuresجداول للقراءة فقطمنطق التحقق من الصحةمراجعة - الخزنة الآمنة11أنماط التصميم (مبسط)
دوال المصنعجدول Singletonنمط الـ Iteratorالمراقب (المستمع)مراجعة - مصنع الـ Logger3حالة الكائن وسلوكه
متغيرات النسخةدالات الجلب (Getter Methods)دالات التعيين (Setter Methods)الخصائص المحسوبةتنسيق النصوصالتحقق من المساواةمراجعة - درجة الطالب6أساسيات الوراثة
إعداد الوراثةوراثة الـ Methodsتوسيع الـ Constructorإضافة Methods للابنالمشترك مقابل الفريدملخص - التسلسل الهرمي للأشكالتدرّب بنفسك: مترجم Lua عبر الإنترنت