본문 바로가기
2015 IT 웹 기반 개발자과정/JAVA

JAVA 체크카드, 신용카드 구현[상속 클래스]

by 한여름밤의코딩 2015. 10. 30.


package Card;

public class Debit {
	int balance;
	int pay;
	boolean check;
	
	public Debit(int balance){
		this.balance = balance;
	}
	
	public boolean check(int pay){
		if(balance-pay>=0) {
			balance = balance - pay;
			System.out.println(pay+"원을 사용하셨습니다.");
			System.out.println("잔액은 "+balance+"원 입니다.");
			return true;
		}
		System.out.println("잔액이 부족합니다.");
		return false;
	}
	
}

===============================================================
package Card;

public class Credit extends Debit{
	int max;
	int used;
	public Credit(int balance, int max) {
		super(balance);
		this.max = used = max;
	}
	
	public boolean mCheck(int pay){
		if(used-pay>=0)
		{
			used = used - pay;
			System.out.println(pay+"원 을 사용하셨습니다.");
			System.out.println("남은 한도액은 " +used+"원 입니다.");
			return true;
		}
		else if(used-pay<0){
			System.out.println("신용한도가 부족합니다");
			System.out.println("신용 한도 부족으로 직불카드로 사용합니다.");
			
			super.check(pay);
			
			return true;
			}
			
	return false;
	}
}
===============================================================
package Card;

import java.util.Scanner;

public class Shopping {

	public static void main(String[] args) {
		int ch;
		int m;
		
		Debit d1 = new Debit(10000);
		Credit c1 = new Credit(500, 1000);
		
		Scanner sc = new Scanner(System.in);
		
		do{
			
			System.out.println("0. 직불카드  1. 신용카드  2. 종료 = ?");
			ch = sc.nextInt();
			if(ch==2) {
				System.out.println("종료하였습니다.");
				break;
			}
			
			System.out.println("얼마를 사용하시겠습니까?");
			m= sc.nextInt();
			
			switch(ch){
				case 0 :
					d1.check(m);
					break;
				case 1 :
					c1.mCheck(m);
					break;
			}
			
		}while(true);
	}		
}