طريقة الإيداع
جزء من قسم البرمجة كائنية التوجه في رحلة Lua على Coddy. الدرس 20 من 70.
التحدي
سهلنبدأ الآن مشروع Digital Bank. حان وقت إضافة وظائف إلى نظامك الجديد! والآن بعد أن أصبح من الممكن إنشاء الحسابات برصيد ابتدائي قدره 0، لنمنحها القدرة على استلام الأموال من خلال عمليات deposit.
بالاعتماد على فئة Account الحالية لديك، ستضيف method باسم :deposit(amount) تزيد balance للحساب بالمقدار المحدد. هذه عملية مصرفية أساسية: تدخل الأموال، وينمو balance!
ملفاك:
Account.lua: وسّع فئة Account بإضافة method باسم:deposit(amount). يجب أن تضيف هذه method المقدار المعطى إلىself.balance. احتفظ بكل شيء من الدرس السابق (بنية الفئة وconstructor:new()).main.lua: استخدم Require لوحدة Account، وأنشئ حسابًا، ونفّذ بعض عمليات deposit، واعرض كيفية تغيّر balance.
ستتلقى ثلاثة مدخلات:
- مقدار deposit الأول
- مقدار deposit الثاني
- مقدار deposit الثالث
في ملفك الرئيسي، أنشئ حسابًا single ونفّذ عمليات deposit الثلاث بالترتيب. بعد كل عملية deposit، اطبع balance الحالي في سطر جديد.
على سبيل المثال، إذا كانت المدخلات هي 100 و50 و25، فيجب أن يكون الناتج:
100
150
175لاحظ كيف تبني كل عملية deposit على balance السابق: يبدأ الحساب عند 0، ثم ينمو إلى 100 بعد عملية deposit الأولى، وإلى 150 بعد الثانية، وإلى 175 بعد الثالثة. تجعل method :deposit() عملية التراكم هذه ممكنة!
جرّب بنفسك
-- استيراد وحدة Account
local Account = require('Account')
-- اقرأ مبالغ الإيداع الثلاثة
local deposit1 = tonumber(io.read())
local deposit2 = tonumber(io.read())
local deposit3 = tonumber(io.read())
-- أنشئ حسابًا واحدًا
local account = Account:new()
-- نفّذ الإيداعات الثلاثة واطبع الرصيد بعد كل منها
-- TODO: أودع deposit1 واطبع account.balance
-- TODO: أودع deposit2 واطبع account.balance
-- TODO: أودع deposit3 واطبع account.balance
جميع دروس البرمجة كائنية التوجه
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 عبر الإنترنت