معلومات الحساب
جزء من قسم البرمجة كائنية التوجه في رحلة Lua على Coddy. الدرس 23 من 70.
التحدي
سهلأصبح بنكك الرقمي أكثر احترافية! والآن لنجعل accounts تعرض نفسها بشكل أنيق عند طباعتها. من خلال إضافة __tostring metamethod، يمكنك التحكم بدقة في كيفية ظهور account: إظهار كلٍّ من معرّف account وcurrent balance بتنسيق واضح وسهل القراءة.
ستواصل البناء على ملفاتك الحالية:
Account.lua: وسّع Account class بميزتين جديدتين:- عدّل constructor
:new()ليقبلidparameter يحدّد كل account - أضف
__tostringmetamethod تُرجع سلسلة منسّقة تعرض معلومات account
- عدّل constructor
main.lua: أنشئ accounts باستخدام IDs ووضّح كيفية عرضها لنفسها عند طباعتها.
يجب أن تُرجع __tostring method سلسلة بالتنسيق الدقيق التالي:
Account [ID]: Balance = BALANCEحيث إن ID هو معرّف account وBALANCE هو current balance.
ستتلقى four inputs:
- معرّف account الأول
- مقدار deposit الأول
- معرّف account الثاني
- مقدار 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)
جميع دروس البرمجة كائنية التوجه
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 عبر الإنترنت