Menu
Coddy logo textTech

Riepilogo: sistema di pagamento

Fa parte della sezione Programmazione orientata agli oggetti del percorso Java di Coddy. Lezione 40 di 87.

challenge icon

Sfida

Facile

Costruiamo un sistema completo di elaborazione dei pagamenti che riunisce tutto ciò che hai imparato sulle interfacce in questo capitolo. Creerai un sistema flessibile in cui è possibile elaborare uniformemente diversi metodi di pagamento tramite un’interfaccia comune.

Organizzerai il codice in cinque file:

  • Payable.java: Definisci l’interfaccia di base che tutti i metodi di pagamento devono implementare. Dovrebbe dichiarare un unico metodo pay(double amount) che restituisce una String che descrive l’azione di pagamento.
  • CreditCard.java: Crea una classe che implementa Payable e rappresenta i pagamenti con carta di credito. Una CreditCard ha un campo cardNumber (String) che memorizza le ultime 4 cifre. Includi un costruttore per inizializzarlo. Il metodo pay dovrebbe restituire: Paid [amount] using Credit Card ending in [cardNumber]
  • PayPal.java: Crea un’altra classe che implementa Payable per i pagamenti PayPal. Un account PayPal ha un campo email (String). Includi un costruttore per inizializzarlo. Il metodo pay dovrebbe restituire: Paid [amount] via PayPal account [email]
  • PaymentProcessor.java: Crea una classe processore in grado di gestire qualsiasi oggetto Payable. Dovrebbe avere un metodo processPayment(Payable paymentMethod, double amount) che chiama il metodo pay del metodo di pagamento e restituisce il risultato. Questo dimostra come le interfacce consentano un comportamento polimorfico: il processore non deve conoscere il tipo di pagamento specifico!
  • Main.java: Metti insieme tutto. Riceverai tre input: un numero di carta (ultime 4 cifre), un indirizzo email e un importo di pagamento. Crea un PaymentProcessor, poi usalo per elaborare pagamenti dell’importo indicato sia con una CreditCard sia con un account PayPal. Stampa ogni risultato su una riga separata.

Riceverai tre input: le ultime 4 cifre del numero della carta (String), l’email PayPal (String) e l’importo del pagamento (double).

Formatta gli importi con due cifre decimali nel tuo output. Nota come lo stesso PaymentProcessor gestisce tipi di pagamento completamente diversi grazie alla potenza delle interfacce!

Provalo tu

import java.util.Scanner;

class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        
        // Leggi i dati in input
        String cardNumber = scanner.nextLine();  // Ultime 4 cifre
        String email = scanner.nextLine();       // Email PayPal
        double amount = scanner.nextDouble();    // Importo del pagamento
        
        // TODO: Crea un PaymentProcessor
        
        // TODO: Crea una CreditCard con cardNumber
        
        // TODO: Crea un account PayPal con email
        
        // TODO: Elabora il pagamento con CreditCard e stampa il risultato
        
        // TODO: Elabora il pagamento con PayPal e stampa il risultato
    }
}

Tutte le lezioni di Programmazione orientata agli oggetti

Esercitati da solo: Compilatore Java online