복습 - 결제 시스템
Coddy Java 여정의 객체 지향 프로그래밍 섹션에 포함된 레슨 — 87개 중 40번째.
챌린지
쉬움이 장에서 인터페이스에 대해 배운 모든 내용을 하나로 묶는 완전한 결제 처리 시스템을 구축해 보겠습니다. 공통 인터페이스를 통해 서로 다른 결제 수단을 일관되게 처리할 수 있는 유연한 시스템을 만들 것입니다.
코드는 다음 다섯 개의 파일로 구성됩니다:
Payable.java: 모든 결제 수단이 반드시 구현해야 하는 핵심 인터페이스를 정의합니다. 결제 동작을 설명하는 String을 반환하는 단일 메서드pay(double amount)를 선언해야 합니다.CreditCard.java: 신용카드 결제를 나타내며Payable을 구현하는 클래스를 생성합니다. CreditCard는 마지막 4자리를 저장하는cardNumber필드(String)를 가집니다. 이를 초기화하는 생성자를 포함하세요.pay메서드는"Paid %.2f using Credit Card ending in %s"형식의 문자열을 반환해야 합니다.PayPal.java: PayPal 결제를 위해Payable을 구현하는 또 다른 클래스를 생성합니다. PayPal 계정은email필드(String)를 가집니다. 이를 초기화하는 생성자를 포함하세요.pay메서드는"Paid %.2f via PayPal account %s"형식의 문자열을 반환해야 합니다.PaymentProcessor.java: 모든Payable객체를 처리할 수 있는 프로세서 클래스를 생성합니다. 이 클래스는 결제 수단의pay메서드를 호출하고 그 결과를 반환하는processPayment(Payable paymentMethod, double amount)메서드를 가져야 합니다. 이는 인터페이스가 어떻게 다형성 동작을 가능하게 하는지 보여줍니다. 프로세서는 구체적인 결제 유형을 알 필요가 없습니다!Main.java: 모든 것을 하나로 합칩니다. 카드 번호(마지막 4자리), 이메일 주소, 결제 금액이라는 세 가지 입력을 받게 됩니다.PaymentProcessor를 생성한 다음, 주어진 금액에 대해CreditCard와PayPal계정 모두로 결제를 처리하는 데 사용하세요. 각 결과를 별도의 줄에 출력합니다.
카드 번호의 마지막 4자리(String), PayPal 이메일(String), 결제 금액(double)의 세 가지 입력을 받습니다.
출력 시 금액은 소수점 둘째 자리까지 형식화하십시오. 인터페이스의 힘을 통해 동일한 PaymentProcessor가 어떻게 완전히 다른 결제 유형을 처리하는지 확인해 보세요!
직접 해보기
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 인터페이스함수형 인터페이스복습 - 결제 시스템