Menu
Coddy logo textTech

סיכום – מנהל חשבון בנק

חלק מהיחידה תכנות מונחה עצמים במסלול ה-Java של Coddy. שיעור 14 מתוך 87.

challenge icon

אתגר

קל

בואו נבנה מערכת שלמה של 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: הדפס את סיכום החשבון
    }
}

כל השיעורים ביחידה תכנות מונחה עצמים

תרגלו בעצמכם: קומפיילר Java אונליין