Menu
Coddy logo textTech

Özet - Ödeme Sistemi

Coddy'nin Java Journey'sinin Nesne Yönelimli Programlama bölümünün bir parçası — ders 40 / 87.

challenge icon

Görev

Kolay

Bu bölümde arayüzler (interfaces) hakkında öğrendiğiniz her şeyi bir araya getiren eksiksiz bir ödeme işleme sistemi kuralım. Farklı ödeme yöntemlerinin ortak bir arayüz aracılığıyla tek tip olarak işlenebildiği esnek bir sistem oluşturacaksınız.

Kodunuzu beş dosya halinde düzenleyeceksiniz:

  • Payable.java: Tüm ödeme yöntemlerinin uygulaması gereken temel arayüzü tanımlayın. Ödeme işlemini açıklayan bir String döndüren tek bir pay(double amount) metodu bildirmelidir.
  • CreditCard.java: Kredi kartı ödemelerini temsil eden ve Payable arayüzünü uygulayan bir sınıf oluşturun. Bir CreditCard, son 4 haneyi saklayan bir cardNumber alanına (String) sahiptir. Bunu başlatmak için bir yapıcı (constructor) ekleyin. pay metodu şu sonucu döndürmelidir: Paid [amount] using Credit Card ending in [cardNumber]
  • PayPal.java: PayPal ödemeleri için Payable arayüzünü uygulayan başka bir sınıf oluşturun. Bir PayPal hesabının bir email alanı (String) vardır. Bunu başlatmak için bir yapıcı (constructor) ekleyin. pay metodu şu sonucu döndürmelidir: Paid [amount] via PayPal account [email]
  • PaymentProcessor.java: Herhangi bir Payable nesnesini işleyebilen bir işlemci sınıfı oluşturun. Ödeme yönteminin pay metodunu çağıran ve sonucu döndüren bir processPayment(Payable paymentMethod, double amount) metoduna sahip olmalıdır. Bu, arayüzlerin polimorfik (çok biçimli) davranışı nasıl sağladığını gösterir; işlemcinin belirli ödeme türünü bilmesine gerek yoktur!
  • Main.java: Her şeyi bir araya getirin. Üç girdi alacaksınız: bir kart numarası (son 4 hane), bir e-posta adresi ve bir ödeme tutarı. Bir PaymentProcessor oluşturun, ardından bunu verilen tutar için hem bir CreditCard hem de bir PayPal hesabı ile ödemeleri işlemek için kullanın. Her sonucu ayrı bir satıra yazdırın.

Üç girdi alacaksınız: kart numarasının son 4 hanesi (String), PayPal e-postası (String) ve ödeme tutarı (double).

Çıktınızda tutarları iki ondalık basamakla biçimlendirin. Aynı PaymentProcessor sınıfının, arayüzlerin gücü sayesinde tamamen farklı ödeme türlerini nasıl işlediğine dikkat edin!

Kendin dene

import java.util.Scanner;

class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        
        // Girdileri oku
        String cardNumber = scanner.nextLine();  // Son 4 hane
        String email = scanner.nextLine();       // PayPal e-postası
        double amount = scanner.nextDouble();    // Ödeme tutarı
        
        // TODO: Bir PaymentProcessor oluşturun
        
        // TODO: cardNumber ile bir CreditCard oluşturun
        
        // TODO: email ile bir PayPal hesabı oluşturun
        
        // TODO: CreditCard ile ödemeyi işleyin ve sonucu yazdırın
        
        // TODO: PayPal ile ödemeyi işleyin ve sonucu yazdırın
    }
}

Nesne Yönelimli Programlama bölümündeki tüm dersler