مراجعة - درجة الطالب
جزء من قسم Object Oriented Programming في رحلة Lua على Coddy — الدرس 18 من 70.
التحدي
سهلدعنا نبني فئة Student كاملة تجمع كل ما تعلمته في هذا الفصل — متغيرات النسخة (instance variables)، والمُحضرات (getters)، والمُعينات (setters)، والخصائص المحسوبة، كلها تعمل معاً!
ستقوم بتنظيم الكود الخاص بك عبر ملفين:
Student.lua: قم بتعريف فئةStudentالخاصة بك باستخدام نمط النموذج الأولي (prototype pattern) القياسي. يجب أن يخزن كل طالبnameوgrade. تحتاج فئتك إلى:- منشئ
:new(name, grade) - مُحضر
:getName()يعيد اسم الطالب - مُحضر
:getGrade()يعيد الدرجة الحالية - مُعين
:setGrade(newGrade)يقوم بتحديث الدرجة - طريقة
:hasPassed(threshold)تعيدtrueإذا كانت درجة الطالب أكبر من أو تساوي العتبة (threshold)، وfalseخلاف ذلك
- منشئ
main.lua: استدعِ وحدة Student الخاصة بك واستعرض جميع الوظائف من خلال إنشاء طالب، والتحقق من حالته، وتحديث درجته، والتحقق من التغييرات.
ستتلقى أربعة مدخلات:
- اسم الطالب
- الدرجة الأولية
- عتبة النجاح للتحقق منها
- الدرجة الجديدة لتعيينها
في ملفك الرئيسي، قم بإنشاء طالب بالاسم والدرجة الأولية المعطيين، ثم اطبع ما يلي في أسطر منفصلة:
- اسم الطالب
- درجة الطالب الأولية
- ما إذا كان الطالب قد نجح بالعتبة المعطاة (اطبع
trueأوfalse) - درجة الطالب بعد تحديثها بالدرجة الجديدة
- ما إذا كان الطالب قد نجح بنفس العتبة بعد تحديث الدرجة
على سبيل المثال، إذا كانت المدخلات هي Emma و 55 و 60 و 75، يجب أن تكون المخرجات:
Emma
55
false
75
trueكانت لدى Emma في البداية درجة 55، والتي لم تستوفِ عتبة النجاح البالغة 60. بعد تحديث درجتها إلى 75، أصبحت ناجحة الآن!
جرّب بنفسك
-- استدعاء وحدة الطالب (Student)
local Student = require('Student')
-- قراءة المدخلات
local name = io.read()
local initialGrade = tonumber(io.read())
local threshold = tonumber(io.read())
local newGrade = tonumber(io.read())
-- TODO: إنشاء طالب بالاسم المعطى والدرجة الأولية
-- TODO: طباعة اسم الطالب باستخدام دالة الحصول على القيمة (getter)
-- TODO: طباعة درجة الطالب الأولية باستخدام دالة الحصول على القيمة (getter)
-- TODO: التحقق والطباعة ما إذا كان الطالب قد نجح بناءً على الحد الأدنى المعطى
-- TODO: تحديث درجة الطالب باستخدام دالة التعيين (setter)
-- 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 للابنالمشترك مقابل الفريدملخص - التسلسل الهرمي للأشكال