[메소드-4] 은행계좌

seratpfk·2022년 7월 29일
0

JAVA

목록 보기
54/96
    //BankAccount 클래스 (메인메소드 없음)
    public class BankAccount {
	
	// 필드
	private String accNo;  // 계좌번호
	private long balance;  // 잔액
	
	// 생성자
	public BankAccount(String accNo, long balance) {  //Bank b = new BankAccount("1234, 50000);
		this.accNo = accNo;
		this.balance = balance;
	}
	
	// 메소드
	// 1. 입금(마이너스 입금 불가)
	public void deposit(long money) {  // b.deposit(50000); (=b 계좌에 50000원 입금)
		if(money < 0)
			return;  // 반환타입이 void인 메소드를 종료하는 코드
		balance += money;
	}
	
	// 2. 출금(마이너스 출금, 잔액보다 큰 출금 불가)
	// 실제로 출금된 금액을 반환
	public long withdraw(long money) {  // long 출금액 = b.withdrawal(50000);
		if(money < 0 || money > balance)
			return 0;  // void가 아닌 long이기 때문에 return 뒤에 출금금액인 0이 붙음.
		balance -= money;
		return money; // 출금 금액을 리턴
	}
	
	// 3. 이체(출금 -> 입금)
	public void transfer(BankAccount other, long money) {
		// 내 통장에서 출금된 금액만큼 상대 계좌에 입금한다.
			other.deposit(withdraw(money));
	}
	
	// 4. 계좌 정보 확인
	public void accInfo() {
		System.out.println("계좌번호: " + accNo + ", 잔고: " + balance + "원");
	}
	
	// BankAccount 클래스 (메인메소드)
	public static void main(String[] args) {
		
		BankAccount me = new BankAccount("1234", 50000);
		BankAccount mom = new BankAccount("4567", 100000);
		
		mom.transfer(me, 50000);  // 엄마가 나에게 50000원 이체
		
		me.accInfo();
		mom.accInfo();
		
	}

}

출력:
계좌번호: 1234, 잔고: 100000원
계좌번호: 4567, 잔고: 50000원

0개의 댓글