مراجعة - رياضيات المحفظة
جزء من قسم Object Oriented Programming في رحلة Lua على Coddy — الدرس 30 من 70.
التحدي
سهللنقم ببناء فئة Wallet تجمع بين مهارات تحميل المعاملات الزائد (operator overloading) التي تعلمتها في هذا الفصل. ستخزن محفظتك مبلغاً من المال وتدعم عمليتين رئيسيتين: دمج المحافظ باستخدام + ومقارنة المحافظ باستخدام <code>< و .
ستقوم بتنظيم الكود الخاص بك عبر ملفين:
Wallet.lua: قم بتعريف فئة Wallet الخاصة بك مع حقلamountيمثل مقدار المال الذي تحتويه. قم بتضمين منشئ:new(amount)وقم بتنفيذ طريقتين وراءيتين (metamethods):__add: إضافة محفظتين يؤدي إلى إنشاء محفظة جديدة تحتوي على المجموع المشترك.__lt: مقارنة المحافظ تحدد أيهما تحتوي على مال أقل.
main.lua: استدعِ وحدة Wallet الخاصة بك، وأنشئ مثيلات للمحفظة، واعرض كيفية عمل العمليتين معاً.
ستتلقى ثلاثة مدخلات:
- المبلغ في المحفظة الأولى
- المبلغ في المحفظة الثانية
- المبلغ في المحفظة الثالثة
في ملفك الرئيسي، أنشئ ثلاث محافظ بالمبالغ المعطاة. ثم:
- أضف المحفظتين الأولى والثانية معاً لإنشاء محفظة مدمجة.
- اطبع مبلغ المحفظة المدمجة.
- قارن المحفظة المدمجة مع المحفظة الثالثة باستخدام <code>< واطبع النتيجة (
trueأوfalse). - قارن المحفظة المدمجة مع المحفظة الثالثة باستخدام
واطبع النتيجة (trueأوfalse).
على سبيل المثال، إذا كانت المدخلات هي 50 و 30 و 100، يجب أن يكون الناتج:
80
true
falseالمحفظة الأولى (50) زائد المحفظة الثانية (30) تنشئ محفظة مدمجة بقيمة 80. وبما أن 80 أقل من 100، فإن المقارنة الأولى هي true. وبما أن 80 ليست أكبر من 100، فإن المقارنة الثانية هي false.
جرّب بنفسك
local Wallet = require('Wallet')
-- قراءة المدخلات
local amount1 = tonumber(io.read())
local amount2 = tonumber(io.read())
local amount3 = tonumber(io.read())
-- TODO: إنشاء ثلاث محافظ بالمبالغ المعطاة
-- TODO: إضافة المحفظة الأولى والثانية معاً لإنشاء محفظة مجمعة
-- TODO: طباعة مبلغ المحفظة المجمعة
-- TODO: مقارنة المحفظة المجمعة بالمحفظة الثالثة باستخدام < وطباعة النتيجة
-- TODO: مقارنة المحفظة المجمعة بالمحفظة الثالثة باستخدام > وطباعة النتيجة
جميع دروس 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 للابنالمشترك مقابل الفريدملخص - التسلسل الهرمي للأشكال