Menu
Coddy logo textTech

Rückblick – Zahlungssystem

Teil des Abschnitts Objektorientierte Programmierung der Java-Journey von Coddy. Lektion 40 von 87.

challenge icon

Aufgabe

Einfach

Erstellen wir ein vollständiges Zahlungsabwicklungssystem, das alles zusammenführt, was du in diesem Kapitel über Schnittstellen gelernt hast. Du erstellst ein flexibles System, in dem verschiedene Zahlungsmethoden einheitlich über eine gemeinsame Schnittstelle verarbeitet werden können.

Du organisierst deinen Code über fünf Dateien:

  • Payable.java: Definiere die zentrale Schnittstelle, die alle Zahlungsmethoden implementieren müssen. Sie soll eine einzige Methode pay(double amount) deklarieren, die einen String zurückgibt, der die Zahlungsaktion beschreibt.
  • CreditCard.java: Erstelle eine Klasse, die Payable implementiert und Kreditkartenzahlungen repräsentiert. Eine CreditCard verfügt über ein Feld cardNumber (String), in dem die letzten 4 Ziffern gespeichert werden. Füge einen Konstruktor hinzu, um es zu initialisieren. Die Methode pay soll Folgendes zurückgeben: Paid [amount] using Credit Card ending in [cardNumber]
  • PayPal.java: Erstelle eine weitere Klasse, die Payable für PayPal-Zahlungen implementiert. Ein PayPal-Konto verfügt über ein Feld email (String). Füge einen Konstruktor hinzu, um es zu initialisieren. Die Methode pay soll Folgendes zurückgeben: Paid [amount] via PayPal account [email]
  • PaymentProcessor.java: Erstelle eine Prozessor-Klasse, die jedes Payable-Objekt verarbeiten kann. Sie soll eine Methode processPayment(Payable paymentMethod, double amount) besitzen, die die pay-Methode der Zahlungsmethode aufruft und das Ergebnis zurückgibt. Dies zeigt, wie Schnittstellen polymorphes Verhalten ermöglichen: Der Prozessor muss den konkreten Zahlungstyp nicht kennen!
  • Main.java: Führe alles zusammen. Du erhältst drei Eingaben: eine Kartennummer (die letzten 4 Ziffern), eine E-Mail-Adresse und einen Zahlungsbetrag. Erstelle einen PaymentProcessor und verwende ihn anschließend, um für den angegebenen Betrag sowohl eine Zahlung mit einer CreditCard als auch mit einem PayPal-Konto zu verarbeiten. Gib jedes Ergebnis in einer eigenen Zeile aus.

Du erhältst drei Eingaben: die letzten 4 Ziffern der Kartennummer (String), die PayPal-E-Mail-Adresse (String) und den Zahlungsbetrag (double).

Formatiere die Beträge in deiner Ausgabe mit zwei Dezimalstellen. Beachte, wie derselbe PaymentProcessor dank der Leistungsfähigkeit von Schnittstellen völlig unterschiedliche Zahlungstypen verarbeitet!

Probier es selbst

import java.util.Scanner;

class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        
        // Eingaben lesen
        String cardNumber = scanner.nextLine();  // Letzte 4 Ziffern
        String email = scanner.nextLine();       // PayPal-E-Mail
        double amount = scanner.nextDouble();    // Zahlungsbetrag
        
        // TODO: Erstelle einen PaymentProcessor
        
        // TODO: Erstelle eine CreditCard mit der cardNumber
        
        // TODO: Erstelle ein PayPal-Konto mit der email
        
        // TODO: Verarbeite die Zahlung mit CreditCard und gib das Ergebnis aus
        
        // TODO: Verarbeite die Zahlung mit PayPal und gib das Ergebnis aus
    }
}

Alle Lektionen in Objektorientierte Programmierung

Übe selbstständig: Online-Java-Compiler