Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

مراجعة - نظام الدفع

جزء من قسم البرمجة كائنية التوجه في رحلة Java على Coddy. الدرس 40 من 87.

challenge icon

التحدي

سهل

لنَبْنِ نظامًا متكاملًا لمعالجة المدفوعات يجمع كل ما تعلمته عن interface في هذا الفصل. ستنشئ نظامًا مرنًا يمكن فيه معالجة طرق الدفع المختلفة بشكل موحّد من خلال interface مشتركة.

ستنظّم شيفرتك عبر خمسة ملفات:

  • Payable.java: عرّف interface الأساسية التي يجب أن ينفّذها جميع طرق الدفع. يجب أن تعلن عن method واحدة هي pay(double amount) تُرجع String يصف إجراء الدفع.
  • CreditCard.java: أنشئ class تنفّذ Payable وتمثّل مدفوعات بطاقات الائتمان. تحتوي CreditCard على field باسم cardNumber من النوع String لتخزين آخر 4 أرقام. أضف constructor لتهيئته. يجب أن تُرجع method pay: Paid [amount] using Credit Card ending in [cardNumber]
  • PayPal.java: أنشئ class أخرى تنفّذ Payable لمدفوعات PayPal. يحتوي حساب PayPal على field باسم email من النوع String. أضف constructor لتهيئته. يجب أن تُرجع method pay: Paid [amount] via PayPal account [email]
  • PaymentProcessor.java: أنشئ class للمعالجة يمكنها التعامل مع أي كائن من نوع Payable. يجب أن تحتوي على method باسم processPayment(Payable paymentMethod, double amount) تستدعي method pay الخاصة بطريقة الدفع وتُرجع النتيجة. يوضّح هذا كيف تتيح interfaces السلوك متعدد الأشكال: لا يحتاج المعالج إلى معرفة نوع الدفع المحدد!
  • Main.java: اجمع كل شيء معًا. ستتلقى ثلاث مدخلات: رقم بطاقة (آخر 4 أرقام)، وعنوان بريد إلكتروني، ومبلغ الدفع. أنشئ PaymentProcessor، ثم استخدمه لمعالجة المدفوعات باستخدام كل من حساب CreditCard وحساب PayPal للمبلغ المحدد. اطبع كل نتيجة في سطر منفصل.

ستتلقى ثلاث مدخلات: آخر 4 أرقام من رقم البطاقة (String)، وبريد PayPal الإلكتروني (String)، ومبلغ الدفع (double).

نسّق المبالغ بمنزلتين عشريتين في مخرجاتك. لاحظ كيف يتعامل PaymentProcessor نفسه مع أنواع دفع مختلفة تمامًا بفضل قوة interfaces!

جرّب بنفسك

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 عبر الإنترنت