فئة المستطيل
جزء من قسم البرمجة كائنية التوجه في رحلة Lua على Coddy. الدرس 56 من 70.
التحدي
سهللنوسّع الآن مدير Shape الخاص بنا من خلال إنشاء Rectangle class ترث من Shape الأساسي الذي أنشأته في الدرس السابق.
ستعمل مع ثلاثة ملفات للحفاظ على تنظيم الكود:
Shape.lua: class Shape الأساسي من التحدي السابق (مع:new(name)و:getName()).Rectangle.lua: أنشئ class باسم Rectangle يرث من Shape. يجب أن يقبل constructor القيمتينwidthوheight، ويستدعي constructor الخاص بـ parent باستخدام الاسم"Rectangle"، ويخزّن dimensions. أضف method باسم:getArea()تحسب area الخاصة بـ rectangle وتعيدها.main.lua: استخدم Require لوحدة Rectangle، واقرأ width وheight من input، وأنشئ instance من Rectangle، ثم اطبع اسمه متبوعًا بـ area الخاصة به في سطرين منفصلين.
Remember إعداد رابط inheritance بشكل صحيح حتى تتمكن instances الخاصة بـ Rectangle من الوصول إلى methods الخاصة بـ Shape عبر prototype chain.
الإدخال: سطران: يحتوي الأول على width (رقم)، ويحتوي الثاني على height (رقم).
الإخراج: سطران: اسم rectangle من :getName()، ثم area الخاصة به من :getArea().
جرّب بنفسك
-- استيراد وحدة Rectangle
local Rectangle = require('Rectangle')
-- قراءة العرض والارتفاع من الإدخال
local width = tonumber(io.read())
local height = tonumber(io.read())
-- إنشاء مثيل جديد من Rectangle بالأبعاد المعطاة
local rect = Rectangle:new(width, height)
-- طباعة اسم المستطيل ومساحته
print(rect:getName())
print(rect:getArea())
جميع دروس البرمجة كائنية التوجه
4مشروع: بنك رقمي
إعداد المشروعطريقة الإيداع7تعدد الأشكال وإعادة التعريف
إعادة تعريف الدوالاستدعاء دوال الفئة الأبDuck Typingواجهة مشتركةالتحقق من النوعمراجعة - أدوار الموظفين10مشروع: مدير الأشكال
إعداد المشروعفئة المستطيلفئة الدائرةدالة المحيطمجموعة الأشكالالمساحة الإجماليةتصفية الأشكال2نمط النموذج الأولي للفئات
مفهوم النموذج الأوليالربط باستخدام __indexالمنشئ :new()تهيئة الخصائصنسخ مستقلةملخص - مصنع السيارات5تحميل المعاملات في OOP
جمع الكائناتطرح الكائناتدمج الكائناتمقارنة الكائنات (<, >)مراجعة - رياضيات المحفظة8التغليف
اصطلاحات التسميةاستخدام Closures للخصوصيةالوصول عبر Closuresجداول للقراءة فقطمنطق التحقق من الصحةمراجعة - الخزنة الآمنة11أنماط التصميم (مبسط)
دوال المصنعجدول Singletonنمط الـ Iteratorالمراقب (المستمع)مراجعة - مصنع الـ Logger3حالة الكائن وسلوكه
متغيرات النسخةدالات الجلب (Getter Methods)دالات التعيين (Setter Methods)الخصائص المحسوبةتنسيق النصوصالتحقق من المساواةمراجعة - درجة الطالب6أساسيات الوراثة
إعداد الوراثةوراثة الـ Methodsتوسيع الـ Constructorإضافة Methods للابنالمشترك مقابل الفريدملخص - التسلسل الهرمي للأشكالتدرّب بنفسك: مترجم Lua عبر الإنترنت