פעולת הפקדה
חלק מהיחידה תכנות מונחה עצמים במסלול ה-Lua של Coddy. שיעור 20 מתוך 70.
אתגר
קלאנחנו מתחילים עכשיו את פרויקט הבנק הדיגיטלי. הגיע הזמן להוסיף פונקציונליות למערכת החדשה שלך! עכשיו, כשאפשר ליצור חשבונות עם יתרת פתיחה של 0, בואו נאפשר להם לקבל כסף באמצעות הפקדות.
על בסיס מחלקת Account הקיימת שלך, תוסיף מתודת :deposit(amount) שמגדילה את יתרת החשבון בסכום שצוין. זוהי פעולה בנקאית בסיסית: כסף נכנס, והיתרה גדלה!
שני הקבצים שלך:
Account.lua: הרחב את מחלקת Account על ידי הוספת מתודת:deposit(amount). המתודה צריכה להוסיף את הסכום הנתון אלself.balance. השאר את כל מה שהיה בשיעור הקודם (מבנה המחלקה והבנאי:new()).main.lua: טען את מודול Account, צור חשבון, בצע כמה הפקדות והצג כיצד היתרה משתנה.
תקבל שלוש קלטות:
- סכום ההפקדה הראשונה
- סכום ההפקדה השנייה
- סכום ההפקדה השלישית
בקובץ הראשי שלך, צור חשבון יחיד ובצע את שלוש ההפקדות לפי הסדר. אחרי כל הפקדה, הדפס את היתרה הנוכחית בשורה חדשה.
לדוגמה, אם הקלטים הם 100, 50 ו-25, הפלט אמור להיות:
100
150
175שים לב כיצד כל הפקדה מתווספת ליתרה הקודמת: החשבון מתחיל ב-0, ואז גדל ל-100 אחרי ההפקדה הראשונה, ל-150 אחרי השנייה ול-175 אחרי השלישית. מתודת :deposit() שלך מאפשרת את הצבירה הזאת!
נסו בעצמכם
-- טען את המודול Account באמצעות require
local Account = require('Account')
-- קרא את סכומי שלוש ההפקדות
local deposit1 = tonumber(io.read())
local deposit2 = tonumber(io.read())
local deposit3 = tonumber(io.read())
-- צור חשבון אחד
local account = Account:new()
-- בצע את שלוש ההפקדות והדפס את היתרה אחרי כל אחת מהן
-- TODO: הפקד את deposit1 והדפס את account.balance
-- TODO: הפקד את deposit2 והדפס את account.balance
-- TODO: הפקד את deposit3 והדפס את account.balance
כל השיעורים ביחידה תכנות מונחה עצמים
4פרויקט: בנק דיגיטלי
הגדרת הפרויקטפעולת הפקדה7פולימורפיזם ודריסת מתודות
דריסת מתודותקריאה למתודות של מחלקת האבטיפוסיות ברווזממשק משותףבדיקת טיפוססיכום – תפקידי עובדים2תבנית אב־טיפוס למחלקה
מושג אב־הטיפוסקישור באמצעות __indexהבנאי :new()אתחול מאפייניםמופעים עצמאייםסיכום – מפעל מכוניות5העמסת אופרטורים בתכנות מונחה עצמים
חיבור אובייקטיםחיסור אובייקטיםשרשור אובייקטיםהשוואת אובייקטים (<, >)חזרה – חישובים עם ארנק8כימוס
כללי מתן שמותClosures לשמירה על פרטיותגישה באמצעות Closuresטבלאות לקריאה בלבדלוגיקת אימותסיכום – כספת מאובטחת11תבניות עיצוב (בקצרה)
פונקציות Factoryטבלת Singletonתבנית IteratorObserver (מאזין)סיכום – מפעל Logger3מצב והתנהגות של אובייקטים
משתני מופעמתודות Getterמתודות Setterמאפיינים מחושביםעיצוב מחרוזותבדיקות שוויוןסיכום – ציון תלמיד6יסודות הירושה
הכנת מבנה הירושהירושת מתודותהרחבת הבנאיהוספת מתודות למחלקת הבתמשותף לעומת ייחודיסיכום – היררכיית צורותתרגלו בעצמכם: קומפיילר Lua אונליין