3초기억력

상속 : 문제2)계좌정보, 입금, 출금. 카드번호 추가. pay 메서드 본문

자바_기초

상속 : 문제2)계좌정보, 입금, 출금. 카드번호 추가. pay 메서드

잠수콩 2019. 5. 27. 12:39
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
//계좌정보 - 계좌번호, 이름, 잔액
//기능-입금, 출금(잔액이 모자랄경우 경고)
//카드번호 추가 class. pay 시 카드번호 or 잔액 모자랄 경우 경고
package Inheritance;

class Account{
	String accountNo;		//계좌번호
	String name;			//이름
	int balance;			//잔액
	
	void deposit(int a) {		//입금
		this.balance += a;
	}
	
	int withdraw(int b) {		//출금		
		if (this.balance < b) {
			return 0;
		} else {
			this.balance -= b;
			return this.balance;
			
			//return this.balance - b;		//한줄로도 가능
		}		
	}

	@Override
	public String toString() {
		return "Account [accountNo=" + accountNo + ", name=" + name + ", balance=" + balance + "]";
	}
	
}

//카드번호 또는 잔액이 모자랄 경우 경고
class CheckingAccount extends Account{
	String cardNo;		//카드번호
	
	int pay(String cNo, int a) {
		
		if (!cNo.equals(this.cardNo) || this.balance < a) {
			System.out.println("지불 불가능");
			return 0;
		} else {
			return withdraw(a);
		}
		
	}
}

public class exam_AccountMain {

	public static void main(String[] args) {

		CheckingAccount ob = new CheckingAccount();
		ob.accountNo = "123-123-123";
		ob.name = "홍길동";
		ob.balance = 200000;
		ob.cardNo = "111-222-333-444";

		int res = ob.pay("1111", 1000);
		System.out.println("잔액 : "+res);
		System.out.println("===================");

		int res2 = ob.pay("111-222-333-444", 1000);
		System.out.println("잔액 : "+res2);

	}

}
Comments