סיכום – מנהל חשבונות בנק
חלק מהיחידה תכנות מונחה עצמים במסלול ה-Dart של Coddy. שיעור 22 מתוך 110.
אתגר
קלבואו נבנה מערכת לניהול חשבונות בנק שמשלבת את כל המושגים של תכונות מחלקה שלמדת בפרק הזה. תיצור מערכת שעוקבת אחר נתוני החשבונות הבודדים ובמקביל מנהלת גם סטטיסטיקות כלליות של הבנק.
תארגן את הקוד שלך בשני קבצים:
bank_account.dart: הגדר מחלקה בשםBankAccountשמנהלת חשבונות בודדים ועוקבת אחר הסטטיסטיקות הכלליות של הבנק. המחלקה שלך צריכה לכלול:final String accountNumberשלא ניתן לשנות לאחר יצירתוString holderNameעבור שם בעל החשבון- שדה פרטי מסוג
double _balanceשמתחיל ב-0.0 static int totalAccountsשמתחיל ב-0ועוקב אחר מספר החשבונות הקיימיםstatic double totalDepositsשמתחיל ב-0.0ועוקב אחר כל ההפקדות שבוצעו בבנק- בנאי שמקבל את
accountNumberואתholderName, ומגדיל אתtotalAccounts - getter בשם
balanceשמחזיר את היתרה הנוכחית - מתודה
deposit(double amount)שמוסיפה ליתרה רק אם הסכום חיובי, וגם מוסיפה ל-totalDepositsכשההפקדה מצליחה - מתודה
withdraw(double amount)שמחסירה מהיתרה רק אם הסכום חיובי ואינו עולה על היתרה הנוכחית - מתודה
displayInfo()שמדפיסה את פרטי החשבון - מתודה סטטית
getBankStats()שמחזירה מחרוזת עם הסטטיסטיקות הכלליות של הבנק
main.dart: ייבא את מחלקת חשבון הבנק שלך והדגם את פעולת המערכת:- צור חשבון עם המספר
'ACC001'עבור'Alice' - צור חשבון עם המספר
'ACC002'עבור'Bob' - הפקד
500.0לחשבון של Alice - הפקד
300.0לחשבון של Bob - משוך
150.0מחשבון של Alice - נסה למשוך
1000.0מחשבון של Bob (הפעולה אמורה להתעלם — אין מספיק כסף) - נסה להפקיד
-50.0לחשבון של Alice (הפעולה אמורה להתעלם — סכום שלילי) - קרא למתודה
displayInfo()בחשבון של Alice, ולאחר מכן בחשבון של Bob - הדפס את הסטטיסטיקות של הבנק באמצעות
BankAccount.getBankStats()
- צור חשבון עם המספר
המתודה displayInfo() אמורה להדפיס בפורמט הזה:
Account [accountNumber] | Holder: [holderName] | Balance: $[balance]המתודה getBankStats() אמורה להחזיר:
Bank Stats - Total Accounts: [totalAccounts] | Total Deposits: $[totalDeposits]פלט צפוי:
Account ACC001 | Holder: Alice | Balance: $350.0
Account ACC002 | Holder: Bob | Balance: $300.0
Bank Stats - Total Accounts: 2 | Total Deposits: $800.0נסו בעצמכם
import 'bank_account.dart';
void main() {
// TODO: צרו חשבון עם המספר 'ACC001' עבור 'Alice'
// TODO: צרו חשבון עם המספר 'ACC002' עבור 'Bob'
// TODO: הפקידו 500.0 בחשבון של Alice
// TODO: הפקידו 300.0 בחשבון של Bob
// TODO: משכו 150.0 מהחשבון של Alice
// TODO: נסו למשוך 1000.0 מהחשבון של Bob (יש להתעלם מהפעולה)
// TODO: נסו להפקיד -50.0 בחשבון של Alice (יש להתעלם מהפעולה)
// TODO: קראו ל-displayInfo() על החשבון של Alice
// TODO: קראו ל-displayInfo() על החשבון של Bob
// TODO: הדפיסו את נתוני הבנק באמצעות BankAccount.getBankStats()
}
כל השיעורים ביחידה תכנות מונחה עצמים
1יסודות התכנות מונחה העצמים
קבצים חיצונייםספריות וייבואמבוא לתכנות מונחה עצמיםמחלקות לעומת אובייקטיםמילת המפתח thisמתודותמשתני מופעיסודות הבנאיחזרה: מחשבון פשוט4בטיחות מפני ערכי null
מבוא לבטיחות מפני ערכי nullניתן להקצאה ל-null לעומת לא ניתן להקצאה ל-nullהאופרטורים ? ו-!מילת המפתח Late ובטיחות מפני ערכי nullאופרטורים מודעי nullבטיחות מפני ערכי null במחלקותסיכום – מערכת פרופילי משתמשים7מחלקות מופשטות וממשקים
מחלקות מופשטותמתודות מופשטותממשקים ב-Dartממשקים משתמעיםמימוש לעומת הורשהממשקים מרוביםחזרה – מחשבון צורות10אוספים וגנריות
סקירה כללית של List, Set ו-Mapאוספים בטוחים מבחינת טיפוסיםמחלקות גנריותמתודות גנריותאילוצים גנרייםIterable ו-Iteratorסיכום – אחסון גנרי13מושגי OOP מתקדמים
הרכבה לעומת הורשהמתודות הרחבהמחלקות קריאותמחלקות אטומות (Dart 3)רשומות (Dart 3)תבניות והתאמה (3.0)טיפוסים מונים עם מתודות16פרויקט: ניהול ספרייה
סקירת הפרויקטמחלקות ספר ומשתמש2בנאים ב-Dart
בנאי ברירת מחדלבנאים בעלי שםרשימות אתחולבנאים קבועיםבנאי Factoryבנאים מפניםסיכום - בונה צורות5כימוס
חברים ציבוריים לעומת פרטייםמוסכמת הקידומת _פרטיות ברמת הספרייההעמקה ב-getters וב-settersהסתרת מידעסיכום – רשומות תלמידים8מיקסינים
מבוא למיקסיניםיצירת מיקסיניםשימוש במספר מיקסיניםמילת המפתח on במיקסיניםמיקסינים לעומת ירושהמיקסינים לעומת ממשקסיכום – מערכת בעלי החיים3מאפייני מחלקה
איברי מופע לעומת איברים סטטייםשדות final ו-constמשתני lateמתודות ושדות סטטייםGetters ו-Settersסיכום – מנהל חשבונות בנק6ירושה
ירושה בסיסיתמילת המפתח superדריסת מתודותהאנוטציה @overrideמילת המפתח final למחלקהבנאים וירושהסיכום – היררכיית עובדים9פולימורפיזם
יסודות הפולימורפיזםפולימורפיזם באמצעות ממשקיםבדיקת טיפוסים בזמן ריצההאופרטורים is ו-asמילת המפתח קווריאנטיסיכום — מעבד תשלומים12תכנות מונחה עצמים אסינכרוני
Future-ים ו-async/awaitיסודות ה-Streamsבקרי Streamsבנאים אסינכרונייםאסינכרוניות במתודות של מחלקהסיכום - אחזור נתוניםתרגלו בעצמכם: קומפיילר Dart אונליין