Menu
Coddy logo textTech

סיכום – מערכת תשלומים

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

challenge icon

אתגר

קל

בואו נבנה מערכת שלמה לעיבוד תשלומים, שתשלב את כל מה שלמדת על ממשקים בפרק הזה. תיצור מערכת גמישה שבה ניתן לעבד שיטות תשלום שונות באופן אחיד באמצעות ממשק משותף.

תארגן את הקוד שלך בחמישה קבצים:

  • Payable.java: הגדר את ממשק הליבה שכל שיטות התשלום חייבות לממש. עליו להצהיר על מתודה יחידה pay(double amount) שמחזירה String המתאר את פעולת התשלום.
  • CreditCard.java: צור מחלקה שמממשת את Payable ומייצגת תשלומים בכרטיס אשראי. למחלקת CreditCard יש שדה cardNumber מסוג String ששומר את 4 הספרות האחרונות. כלול בנאי לאתחול שלו. המתודה pay צריכה להחזיר: Paid [amount] using Credit Card ending in [cardNumber]
  • PayPal.java: צור מחלקה נוספת שמממשת את Payable עבור תשלומים באמצעות PayPal. לחשבון PayPal יש שדה email מסוג String. כלול בנאי לאתחול שלו. המתודה pay צריכה להחזיר: Paid [amount] via PayPal account [email]
  • PaymentProcessor.java: צור מחלקת מעבד שיכולה לטפל בכל אובייקט מסוג Payable. צריכה להיות בה מתודה processPayment(Payable paymentMethod, double amount) שקוראת למתודה pay של שיטת התשלום ומחזירה את התוצאה. כך מודגם כיצד ממשקים מאפשרים התנהגות פולימורפית: המעבד לא צריך לדעת מהו סוג התשלום המסוים!
  • Main.java: חבר הכול יחד. תקבל שלוש קלטים: מספר כרטיס (4 הספרות האחרונות), כתובת דוא"ל וסכום לתשלום. צור PaymentProcessor, ואז השתמש בו כדי לעבד תשלומים בסכום הנתון באמצעות חשבון CreditCard וגם באמצעות חשבון PayPal. הדפס כל תוצאה בשורה נפרדת.

תקבל שלושה קלטים: 4 הספרות האחרונות של מספר הכרטיס (String), כתובת הדוא"ל של PayPal (String) וסכום התשלום (double).

עצב את הסכומים בפלט עם שתי ספרות אחרי הנקודה העשרונית. שים לב כיצד אותו PaymentProcessor מטפל בסוגי תשלום שונים לחלוטין באמצעות הכוח של ממשקים!

נסו בעצמכם

import java.util.Scanner;

class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        
        // קרא את נתוני הקלט
        String cardNumber = scanner.nextLine();  // 4 הספרות האחרונות
        String email = scanner.nextLine();       // כתובת אימייל של PayPal
        double amount = scanner.nextDouble();    // סכום התשלום
        
        // TODO: צור PaymentProcessor
        
        // TODO: צור CreditCard עם cardNumber
        
        // TODO: צור חשבון PayPal עם email
        
        // TODO: בצע תשלום באמצעות CreditCard והדפס את התוצאה
        
        // TODO: בצע תשלום באמצעות PayPal והדפס את התוצאה
    }
}

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

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