סיכום – מנהל חשבון בנק
חלק מהיחידה תכנות מונחה עצמים במסלול ה-Java של Coddy. שיעור 14 מתוך 87.
אתגר
קלבואו נבנה מערכת שלמה של BankAccount שמאגדת את כל מה שלמדתם על כימוס, מגבילי גישה, פעולות גישה (getters), פעולות קביעה (setters) ומילת המפתח final.
תיצרו שני קבצים כדי לארגן את הקוד:
BankAccount.java: תכננו מחלקה מאובטחת לחשבון בנק, שמגנה על נתונים פיננסיים רגישים:- מספר חשבון בלתי משתנה, שלא ניתן לשנות לאחר יצירת החשבון
- יתרה פרטית שמתחילה ב-0.0 וניתן לשנות רק באמצעות שיטות מבוקרות
- שם פרטי של בעל החשבון שניתן לשלוף, אך לא לשנות ישירות
- בנאי שמקבל את מספר החשבון ואת שם בעל החשבון
- פעולת גישה למספר החשבון
- פעולת גישה לשם בעל החשבון
- פעולת גישה ליתרה
- שיטת
deposit(double amount)שמוסיפה ליתרה רק אם הסכום חיובי, ומחזירהtrueבמקרה של הצלחה אוfalseאם הפעולה נדחית - שיטת
withdraw(double amount)שמחסירה מהיתרה רק אם הסכום חיובי וקיימת יתרה מספקת, ומחזירהtrueבמקרה של הצלחה אוfalseאם הפעולה נדחית - שיטת
getAccountSummary()שמחזירה:"Account [accountNumber] | Owner: [ownerName] | Balance: $[balance]"(היתרה מעוצבת עם 2 ספרות אחרי הנקודה העשרונית)
Main.java: צרו חשבון מסוג BankAccount ובצעו סדרת פעולות. תקבלו חמישה קלטים: מספר חשבון, שם בעל החשבון, סכום הפקדה, סכום המשיכה הראשון וסכום המשיכה השני. הדפיסו ארבע שורות:- תוצאת ההפקדה:
Deposit: trueאוDeposit: false - תוצאת המשיכה הראשונה:
Withdraw 1: trueאוWithdraw 1: false - תוצאת המשיכה השנייה:
Withdraw 2: trueאוWithdraw 2: false - סיכום החשבון הסופי
- תוצאת ההפקדה:
תקבלו חמישה קלטים לפי הסדר: accountNumber (String), ownerName (String), depositAmount (double), withdrawAmount1 (double), withdrawAmount2 (double).
לעיצוב היתרה עם 2 ספרות אחרי הנקודה העשרונית, תוכלו להשתמש ב-String.format("%.2f", balance).
נסו בעצמכם
import java.util.Scanner;
class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// קרא את הקלטים
String accountNumber = scanner.nextLine();
String ownerName = scanner.nextLine();
double depositAmount = scanner.nextDouble();
double withdrawAmount1 = scanner.nextDouble();
double withdrawAmount2 = scanner.nextDouble();
// TODO: צור אובייקט BankAccount עם accountNumber ו-ownerName
// TODO: בצע הפקדה והדפס את התוצאה בתור "Deposit: true" או "Deposit: false"
// TODO: בצע את המשיכה הראשונה והדפס את התוצאה בתור "Withdraw 1: true" או "Withdraw 1: false"
// TODO: בצע את המשיכה השנייה והדפס את התוצאה בתור "Withdraw 2: true" או "Withdraw 2: false"
// TODO: הדפס את סיכום החשבון
}
}
כל השיעורים ביחידה תכנות מונחה עצמים
1יסודות התכנות מונחה העצמים
קבצים חיצונייםמבוא לתכנות מונחה עצמיםמחלקות לעומת אובייקטיםמילת המפתח thisמתודותשדות (מאפיינים)מתודת הבנאיהעמסת בנאיםחזרה – מחשבון פשוט4ירושה
ירושה בסיסית (extends)מילת המפתח superדריסת מתודות (@Override)שרשור בנאיםהמחלקה Objectירושה יחידה ורב־רמתיתלמה אין ירושה מרובה של מחלקותסיכום – היררכיית עובדים7מתודות מיוחדות ומחלקת Object
מתודת toString()equals() ו-hashCode()מתודת clone()compareTo() ו-Comparableהממשק Comparatorסיכום – מיון מותאם אישית2מצייני גישה ואנקפסולציה
סקירה של רמות הגישהמתודות Getter ו-Setterהסתרת מידעמילת המפתח finalסיכום – מנהל חשבון בנק5פולימורפיזם
יסודות העמסת מתודותדריסת מתודות (בזמן ריצה)המרה כלפי מעלה וכלפי מטההאופרטור instanceofמחלקות ומתודות מופשטותסיכום – מחשבון צורות8מושגי OOP מתקדמים
הרכבה מול ירושהאגרגציה מול הרכבהמחלקות פנימיות, מקוננות ואנונימיותEnums ומתודות של EnumRecords (Java 16+)מחלקות חתומות (Java 17+)3מאפייני מחלקה וחברים סטטיים
משתני מופע לעומת משתנים סטטייםמתודות סטטיותבלוקים סטטייםקבועים (static final)סיכום — מונה ומחלקת עזר6ממשקים ומחלקות מופשטות
מבוא לממשקיםמימוש ממשקיםמימוש של כמה ממשקיםמתודות ברירת מחדל וסטטיות בממשקמחלקות מופשטות לעומת ממשקיםממשקים פונקציונלייםסיכום – מערכת תשלומיםתרגלו בעצמכם: קומפיילר Java אונליין