מחלקת מלבן
חלק מהיחידה תכנות מונחה עצמים במסלול ה-Lua של Coddy. שיעור 56 מתוך 70.
אתגר
קלעכשיו נרחיב את מנהל הצורות שלנו באמצעות יצירת מחלקת Rectangle שיורשת ממחלקת הבסיס Shape שבנית בשיעור הקודם.
תעבוד עם שלושה קבצים כדי לשמור על קוד מאורגן:
Shape.lua: מחלקת הבסיס Shape שלך מהאתגר הקודם (עם:new(name)ועם:getName()).Rectangle.lua: צור מחלקת Rectangle שיורשת מ-Shape. הבנאי צריך לקבל אתwidthואתheight, לקרוא לבנאי של מחלקת האב עם השם"Rectangle", ולאחסן את המידות. הוסף מתודה:getArea()שמחשבת ומחזירה את שטח המלבן.main.lua: טען את המודול Rectangle שלך, קרא את width ואת height מהקלט, צור מופע של Rectangle, והדפס את שמו ואחריו את שטחו בשורות נפרדות.
זכור להגדיר כראוי את קישור הירושה כדי שמופעים של Rectangle יוכלו לגשת למתודות של Shape דרך שרשרת האב־טיפוס.
קלט: שתי שורות: הראשונה מכילה את הרוחב (מספר), השנייה מכילה את הגובה (מספר).
פלט: שתי שורות: שם המלבן מתוך :getName(), ואז שטחו מתוך :getArea().
נסו בעצמכם
-- טען את המודול Rectangle באמצעות require
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פולימורפיזם ודריסת מתודות
דריסת מתודותקריאה למתודות של מחלקת האבטיפוסיות ברווזממשק משותףבדיקת טיפוססיכום – תפקידי עובדים2תבנית אב־טיפוס למחלקה
מושג אב־הטיפוסקישור באמצעות __indexהבנאי :new()אתחול מאפייניםמופעים עצמאייםסיכום – מפעל מכוניות5העמסת אופרטורים בתכנות מונחה עצמים
חיבור אובייקטיםחיסור אובייקטיםשרשור אובייקטיםהשוואת אובייקטים (<, >)חזרה – חישובים עם ארנק8כימוס
כללי מתן שמותClosures לשמירה על פרטיותגישה באמצעות Closuresטבלאות לקריאה בלבדלוגיקת אימותסיכום – כספת מאובטחת11תבניות עיצוב (בקצרה)
פונקציות Factoryטבלת Singletonתבנית IteratorObserver (מאזין)סיכום – מפעל Logger3מצב והתנהגות של אובייקטים
משתני מופעמתודות Getterמתודות Setterמאפיינים מחושביםעיצוב מחרוזותבדיקות שוויוןסיכום – ציון תלמיד6יסודות הירושה
הכנת מבנה הירושהירושת מתודותהרחבת הבנאיהוספת מתודות למחלקת הבתמשותף לעומת ייחודיסיכום – היררכיית צורותתרגלו בעצמכם: קומפיילר Lua אונליין