복습 - 결제 시스템
Coddy Java 여정의 객체 지향 프로그래밍 섹션에 포함된 레슨. 87개 중 40번째.
챌린지
쉬움이 장에서 인터페이스에 대해 배운 모든 내용을 한데 모아 완전한 결제 처리 시스템을 만들어 보겠습니다. 공통 인터페이스를 통해 다양한 결제 수단을 일관되게 처리할 수 있는 유연한 시스템을 만들게 됩니다.
코드를 다섯 개의 파일로 구성합니다:
Payable.java: 모든 결제 수단이 Implement해야 하는 핵심 interface를 Define합니다. 결제 동작을 설명하는 String을 반환하는 단일 methodpay(double amount)를 Declare해야 합니다.CreditCard.java: 신용 카드 결제를 나타내며Payable을 Implement하는 class를 Create합니다. CreditCard에는 마지막 4자리 숫자를 저장하는cardNumberfield(String)이 있습니다. 이를 initialize하는 constructor를 포함하세요.paymethod는 다음을 반환해야 합니다:Paid [amount] using Credit Card ending in [cardNumber]PayPal.java: PayPal 결제를 위한Payable을 Implement하는 또 다른 class를 Create합니다. PayPal account에는emailfield(String)이 있습니다. 이를 initialize하는 constructor를 포함하세요.paymethod는 다음을 반환해야 합니다:Paid [amount] via PayPal account [email]PaymentProcessor.java: 어떤Payableobject든 처리할 수 있는 processor class를 Create합니다.processPayment(Payable paymentMethod, double amount)method를 포함해야 하며, 이 method는 payment method의paymethod를 호출하고 그 결과를 반환합니다. 이는 interface가 polymorphic behavior를 가능하게 하는 방식을 보여 줍니다. processor는 구체적인 결제 유형을 알 필요가 없습니다!Main.java: 모든 내용을 한데 모읍니다. 세 가지 입력, 즉 카드 번호(마지막 4자리), email 주소, 결제 금액을 받습니다.PaymentProcessor를 Create한 다음 이를 사용하여 주어진 금액으로CreditCard와PayPalaccount를 사용한 결제를 모두 처리합니다. 각 결과를 별도의 줄에 출력하세요.
세 가지 입력을 받습니다: 카드 번호의 마지막 4자리(String), PayPal email(String), 결제 금액(double)입니다.
출력에서 금액을 소수점 이하 두 자리로 format하세요. 동일한 PaymentProcessor가 interface의 힘을 통해 완전히 다른 결제 유형을 처리하는 방식을 확인해 보세요!
직접 해보기
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: cardNumber로 CreditCard 생성
// TODO: email로 PayPal 계정 생성
// TODO: CreditCard로 결제 처리하고 결과 출력
// TODO: PayPal로 결제 처리하고 결과 출력
}
}
객체 지향 프로그래밍의 모든 레슨
4상속
상속의 기초 (extends)super 키워드메서드 오버라이딩 (@Override)생성자 체이닝Object 클래스단일 및 다중 레벨 상속다중 클래스 상속이 불가능한 이유요약 - 직원 계층 구조6인터페이스와 추상 클래스
인터페이스 소개인터페이스 구현하기다중 인터페이스 구현인터페이스의 Default 및 Static 메서드추상 클래스 vs 인터페이스함수형 인터페이스복습 - 결제 시스템직접 연습해 보세요: 온라인 Java 컴파일러