פרטי חשבון
חלק מהיחידה תכנות מונחה עצמים במסלול ה-Lua של Coddy. שיעור 23 מתוך 70.
אתגר
קלהבנק הדיגיטלי שלך הופך למקצועי יותר! עכשיו נדאג שהחשבונות שלך יוצגו בצורה נאה בעת הדפסתם. באמצעות הוספת מתודת מטא __tostring, אפשר לשלוט בדיוק באופן שבו חשבון מוצג: להציג גם את מזהה החשבון וגם את היתרה הנוכחית בפורמט נקי וקריא.
תמשיך לעבוד על הקבצים הקיימים שלך:
Account.lua: הרחב את מחלקת Account שלך בשתי תכונות חדשות:- שנה את הבנאי
:new()כך שיקבל פרמטרidשמזהה כל חשבון - הוסף מתודת מטא
__tostringשמחזירה מחרוזת מעוצבת המציגה את פרטי החשבון
- שנה את הבנאי
main.lua: צור חשבונות עם מזהים והדגם כיצד הם מוצגים בעת הדפסתם.
המתודה __tostring צריכה להחזיר מחרוזת בפורמט המדויק הזה:
Account [ID]: Balance = BALANCEכאשר ID הוא מזהה החשבון ו-BALANCE היא היתרה הנוכחית.
תקבל ארבע קלטים:
- מזהה החשבון הראשון
- סכום ההפקדה לחשבון הראשון
- מזהה החשבון השני
- סכום ההפקדה לחשבון השני
בקובץ הראשי שלך, צור שני חשבונות עם המזהים הנתונים, הפקד את הסכומים המתאימים בכל אחד מהם, ואז הדפס כל חשבון ישירות באמצעות print(). מתודת המטא __tostring תיקרא אוטומטית בעת הדפסת אובייקט החשבון.
לדוגמה, אם הקלט הוא 1001, 500, 1002 ו-750, הפלט צריך להיות:
Account [1001]: Balance = 500
Account [1002]: Balance = 750לכל חשבון יש עכשיו זהות ייחודית והוא יכול לתאר את עצמו בבירור: חוויית בנקאות מקצועית הרבה יותר!
נסו בעצמכם
-- טען את המודול Account
local Account = require('Account')
-- קרא את ארבעת הקלטים
local id1 = io.read()
local deposit1 = tonumber(io.read())
local id2 = io.read()
local deposit2 = tonumber(io.read())
-- צור שני חשבונות עם מזהים
local account1 = Account:new(id1)
local account2 = Account:new(id2)
-- הפקד את הסכומים המתאימים
account1:deposit(deposit1)
account2:deposit(deposit2)
-- הדפס כל חשבון (משתמש ב-__tostring)
print(account1)
print(account2)
כל השיעורים ביחידה תכנות מונחה עצמים
4פרויקט: בנק דיגיטלי
הגדרת הפרויקטפעולת הפקדה7פולימורפיזם ודריסת מתודות
דריסת מתודותקריאה למתודות של מחלקת האבטיפוסיות ברווזממשק משותףבדיקת טיפוססיכום – תפקידי עובדים2תבנית אב־טיפוס למחלקה
מושג אב־הטיפוסקישור באמצעות __indexהבנאי :new()אתחול מאפייניםמופעים עצמאייםסיכום – מפעל מכוניות5העמסת אופרטורים בתכנות מונחה עצמים
חיבור אובייקטיםחיסור אובייקטיםשרשור אובייקטיםהשוואת אובייקטים (<, >)חזרה – חישובים עם ארנק8כימוס
כללי מתן שמותClosures לשמירה על פרטיותגישה באמצעות Closuresטבלאות לקריאה בלבדלוגיקת אימותסיכום – כספת מאובטחת11תבניות עיצוב (בקצרה)
פונקציות Factoryטבלת Singletonתבנית IteratorObserver (מאזין)סיכום – מפעל Logger3מצב והתנהגות של אובייקטים
משתני מופעמתודות Getterמתודות Setterמאפיינים מחושביםעיצוב מחרוזותבדיקות שוויוןסיכום – ציון תלמיד6יסודות הירושה
הכנת מבנה הירושהירושת מתודותהרחבת הבנאיהוספת מתודות למחלקת הבתמשותף לעומת ייחודיסיכום – היררכיית צורותתרגלו בעצמכם: קומפיילר Lua אונליין