Menu
Coddy logo textTech

הגדרת הפרויקט

חלק מהיחידה תכנות מונחה עצמים במסלול ה-Lua של Coddy. שיעור 55 מתוך 70.

challenge icon

אתגר

קל

בואו נבנה את הבסיס למערכת לניהול צורות! הפרויקט הזה יתפתח במהלך השיעורים הבאים, אז נתחיל בהגדרת מבנה קבצים מסודר עם מחלקת בסיס Shape.

תיצרו שני קבצים כדי לארגן את הקוד שלכם:

  • Shape.lua: הגדירו מחלקת בסיס Shape באמצעות תבנית האב־טיפוס. לכל צורה יש מאפיין name (כמו "Circle" או "Rectangle"). כללו בנאי :new(name) שמקבל את שם הצורה, ומתודה :getName() שמחזירה אותו.
  • main.lua: הפיחו חיים במחלקת Shape שלכם על ידי ייבוא המודול ויצירת מופע של צורה. קראו שם של צורה מהקלט, צרו צורת Shape עם השם הזה והדפיסו את התוצאה של קריאה ל־:getName().

מחלקת הבסיס הזאת תשמש כמחלקת האב של צורות ספציפיות כמו Rectangle ו-Circle בשיעורים הבאים. לעת עתה, התמקדו במבנה המחלקה: הגדרת __index, תבנית הבנאי ומתודת האחזור.

קלט: שורה אחת המכילה את שם הצורה (מחרוזת).

פלט: שם הצורה שמוחזר על ידי :getName().

נסו בעצמכם

-- טענו את המודול Shape באמצעות require
local Shape = require('Shape')

-- קראו את שם הצורה מהקלט
local shapeName = io.read()

-- TODO: צרו מופע חדש של Shape עם השם הנתון

-- TODO: הדפיסו את התוצאה של הקריאה ל־:getName() על הצורה שלכם

כל השיעורים ביחידה תכנות מונחה עצמים

תרגלו בעצמכם: קומפיילר Lua אונליין