본문 바로가기

Java/본격 Java 퀴즈 기초

[Java] 계좌 운영하기

(1) 다음과 같이 2개의 계좌를 생성한다.
- 계좌번호: 1001, 이름: 홍길동, 잔고: 0
- 계좌번호: 1002, 이름: 이순신, 잔고: 0


(2) 홍길동의 계좌 1001 에 1백만원을 입금한다.
- 현재의 계좌 잔고를 출력한다.
<출력예> 계좌명: 홍길동, 계좌번호: 1001, 잔액: 1000000


(3) 홍길동의 계좌 1001 에서 10만원을 출금한다.
- 현재의 계좌 잔고를 출력한다.
<출력예> 계좌명: 홍길동, 계좌번호: 1001, 잔액: 900000


(4) 홍길동의 계좌 1001 에서 50만원을 이순신의 계좌로 이체한다.
- 홍길동의 계좌정보와 이순신의 계좌정보를 출력한다.
<출력예> 계좌명: 홍길동, 계좌번호: 1001, 잔액: 400000
계좌명: 이순신, 계좌번호: 1002, 잔액: 500000

(5) 이순신의 계좌 1002 에서 60만원을 출금한다.
<출력예> 계좌명: 이순신, 계좌번호: 1002 에서 60만원을 출금
잔액이 부족합니다! 다시 확인하여 주십시오.

.

.

package ex7;

public class Account {
	String id, name;
	int balance = 0;
	
	public Account(String id, String name, int balance) {
		this.id = id;
		this.name= name;
		this.balance = balance;
	}
	public Account(String id, String name) {
		this.id = id;
		this.name = name;
	}
	
	public String getId() { return id; }
	public String getName() { return name; }
	public int getBalance() { return balance; }
	
	public int credit(int amount) {
		balance += amount;
		System.out.println("계좌명 : " + name + ", 계좌번호 : " + id + ", 잔액 : " + balance + "\n");
		return balance;
	}
	
	public int debit(int amount) {
		if(balance >= amount) balance -= amount;
		else System.out.println("잔액이 부족합니다.\n계좌 잔액을 확인해주세요.");
		
		System.out.println("계좌명 : " + name + ", 계좌번호 : " + id + ", 잔액 : " + balance + "\n");
		return balance;
	}
	
	public int transferTo(Account another, int amount) {
		if(balance >= amount) {
			balance -= amount;
			another.credit(amount);
		}else {
			System.out.println("잔액이 부족합니다.");
		}
		
		System.out.println("계좌명 : " + name + ", 계좌번호 : " + id + ", 잔액 : " + balance + "\n");
		return balance;
	}
	
	public String toString() {
		return "Account[id = " + id + ", name = " + name + ", balance = " + balance + "]";
	}
}

.

.

credit(int amount) : 저축 메소드

debit(int amount) : 출금 메소드

transferTo(Account another, int amount) : 송금 메소드

.

.

package ex7;

public class TestAccount {

	public static void main(String[] args) {
		Account accHong = new Account("1001", "홍길동");
		Account accLee = new Account("1002", "이순신");
		
		System.out.println("TEST2 입금");
		accHong.credit(1000000); // 홍길동 계좌에 100만원을 입금
		System.out.println("TEST3 출금");
		accHong.debit(100000); // 홍길동 계좌에서 10만원을 출금
		System.out.println("TEST4 송금");
		accHong.transferTo(accLee, 500000); // 홍길동 계좌에서 이순신 계좌로 50만원 송금
		System.out.println("TEST5 출금실패");
		accLee.debit(600000); // 이순신 계좌에서 60만원 출금, 잔액 부족
		
		
		System.out.println(accHong);
		System.out.println(accLee);
		dispAccount(accHong);
		dispAccount(accLee);
	}
	
	public static void dispAccount(Account acct) {
		System.out.printf("계좌명 : %s, 계좌번호 : %s, 잔액 : %d\n", acct.getName(), acct.getId(), acct.getBalance());
	}

}
728x90
반응형