본문 바로가기
Java_language

간단한 은행 계좌 관리 시스템 구현(정답)

by 헬로제이콥 2025. 12. 5.

 

💻 프로그램 코드

1. Account.java 

잔액 유효성 검사 로직을 제거하고, 생성 시 기본 잔액을 10,000원으로 설정했습니다.

Java
 
/**
 * Account 클래스: 은행 계좌 하나의 정보를 저장하고 입/출금 기능을 제공합니다.
 */
public class Account {
    private String accountNumber; // 계좌 번호
    private String ownerName;     // 소유주 이름
    private long balance;         // 잔액

    /**
     * 생성자: 계좌 번호와 소유주 이름을 받아 초기화합니다. 잔액은 10000원으로 설정됩니다.
     * @param accountNumber 계좌 번호
     * @param ownerName 소유주 이름
     */
    public Account(String accountNumber, String ownerName) {
        this.accountNumber = accountNumber;
        this.ownerName = ownerName;
        this.balance = 10000; //  초기 잔액을 10,000원으로 설정
    }

    // --- Getter Methods ---
    public String getAccountNumber() {
        return accountNumber;
    }

    public String getOwnerName() {
        return ownerName;
    }

    public long getBalance() {
        return balance;
    }

    // --- Functional Methods ---

    /**
     * 입금 메서드: 잔액에 금액을 추가합니다. 
     * @param amount 입금할 금액
     */
    public void deposit(long amount) {
        this.balance += amount; // 잔액 증가
        System.out.printf("[%s] %d원 입금 완료. 현재 잔액: %d원%n", this.ownerName, amount, this.balance);
    }

    /**
     * 출금 메서드: 잔액에서 금액을 차감합니다.
     * @param amount 출금할 금액
     */
    public void withdraw(long amount) {
        this.balance -= amount; // 잔액 감소
        System.out.printf("[%s] %d원 출금 완료. 현재 잔액: %d원%n", this.ownerName, amount, this.balance);
    }
}

2. BankMain.java

Java

 
/**
 * BankMain 클래스: Account 객체를 생성하고 요청된 기능을 테스트합니다.
 */
public class BankMain {
    public static void main(String[] args) {
        System.out.println("--- 은행 계좌 관리 시스템 (수정 버전) 시작 ---");

        // 1. Account 객체 생성 (홍길동 계좌)
        // 생성 시 기본 잔액 10,000원이 설정됩니다.
        Account acc1 = new Account("110-123-456789", "홍길동");
        System.out.printf("계좌 소유주: %s, 초기 잔액: %d원%n", acc1.getOwnerName(), acc1.getBalance());

        System.out.println("\n[김철수 계좌 생성 (사용되지 않음)]");
        // 2. Account 객체 생성 (김철수 계좌 - 요청에 따라 생성)
        Account acc2 = new Account("333-987-654321", "김철수");
        System.out.printf("계좌 소유주: %s, 초기 잔액: %d원%n", acc2.getOwnerName(), acc2.getBalance());

        System.out.println("\n[홍길동 계좌 작업 시작]");
        // 3. 50,000원 입금
        acc1.deposit(50000); 

        // 4. 50,000원 출금
        acc1.withdraw(50000); 

        // 5. 최종 잔액 확인
        System.out.printf("최종 잔액 확인: %s 계좌 잔액: %d원%n", acc1.getOwnerName(), acc1.getBalance());
        
        System.out.println("--- 은행 계좌 관리 시스템 (수정 버전) 종료 ---");
    }
}

🚀 실행 결과

위 BankMain.java를 실행했을 때의 출력 결과입니다.

--- 은행 계좌 관리 시스템 (수정 버전) 시작 ---
계좌 소유주: 홍길동, 초기 잔액: 10000원

[김철수 계좌 생성 (사용되지 않음)]
계좌 소유주: 김철수, 초기 잔액: 10000원

[홍길동 계좌 작업 시작]
[홍길동] 50000원 입금 완료. 현재 잔액: 60000원
[홍길동] 50000원 출금 완료. 현재 잔액: 10000원
최종 잔액 확인: 홍길동 계좌 잔액: 10000원
--- 은행 계좌 관리 시스템 (수정 버전) 종료 ---