הגדרת הפרויקט
חלק מהיחידה תכנות מונחה עצמים במסלול ה-Lua של Coddy. שיעור 19 מתוך 70.
אתגר
קלאנחנו מתחילים את פרויקט Digital Bank. בשיעורים הבאים תבנו מחלקת Account שיכולה לקבל הפקדות, לטפל במשיכות, להדפיס את עצמה ולהעביר כסף לחשבונות אחרים. הכול מתחיל במבנה קבצים מסודר ובבנאי.
שני הקבצים שלכם:
Account.lua: הגדירו את הטבלהAccount, קבעוAccount.__index = Accountכדי שמופעים יוכלו למצוא את המתודות שלהם, וכתבו את הבנאי:new(). הוא יוצר טבלה ריקה, מגדיר את מטא-הטבלה שלה בתורAccount, נותן להbalanceבערך0ומחזיר אותה. הקובץ מסתיים ב-return Account.main.lua: טענו את המודול באמצעותrequire('Account'), צרו שני חשבונות באמצעותAccount:new(), הדפיסו את היתרה של כל אחד מהם בשורה נפרדת, ואז הדפיסוsavings == checkingכדי להראות ששתי הקריאות יצרו שתי טבלאות שונות.
הפלט הצפוי:
0
0
falseכל חשבון מתחיל באפס. בשיעור הבא תוסיפו את המתודה :deposit(amount), שמגדילה את היתרה.
נסו בעצמכם
-- TODO: לטעון באמצעות require את המודול Account (הקובץ הוא Account.lua)
local Account = nil
-- TODO: ליצור שני חשבונות באמצעות Account:new()
-- TODO: להדפיס את היתרה של כל חשבון (אחד בכל שורה)
-- TODO: להדפיס האם שני החשבונות הם אותה טבלה (הם לא אמורים להיות)
כל השיעורים ביחידה תכנות מונחה עצמים
4פרויקט: בנק דיגיטלי
הגדרת הפרויקטפעולת הפקדה7פולימורפיזם ודריסת מתודות
דריסת מתודותקריאה למתודות של מחלקת האבטיפוסיות ברווזממשק משותףבדיקת טיפוססיכום – תפקידי עובדים2תבנית אב־טיפוס למחלקה
מושג אב־הטיפוסקישור באמצעות __indexהבנאי :new()אתחול מאפייניםמופעים עצמאייםסיכום – מפעל מכוניות5העמסת אופרטורים בתכנות מונחה עצמים
חיבור אובייקטיםחיסור אובייקטיםשרשור אובייקטיםהשוואת אובייקטים (<, >)חזרה – חישובים עם ארנק8כימוס
כללי מתן שמותClosures לשמירה על פרטיותגישה באמצעות Closuresטבלאות לקריאה בלבדלוגיקת אימותסיכום – כספת מאובטחת11תבניות עיצוב (בקצרה)
פונקציות Factoryטבלת Singletonתבנית IteratorObserver (מאזין)סיכום – מפעל Logger3מצב והתנהגות של אובייקטים
משתני מופעמתודות Getterמתודות Setterמאפיינים מחושביםעיצוב מחרוזותבדיקות שוויוןסיכום – ציון תלמיד6יסודות הירושה
הכנת מבנה הירושהירושת מתודותהרחבת הבנאיהוספת מתודות למחלקת הבתמשותף לעומת ייחודיסיכום – היררכיית צורותתרגלו בעצמכם: קומפיילר Lua אונליין