본문 바로가기
Java_language

간단한 은행 계좌 관리 시스템 구현

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

 

🌟 실습 문제: 간단한 은행 계좌 관리 시스템 구현 

목표: Account 클래스를 정의하고, 이 클래스의 객체를 사용하여 계좌 소유주, 잔액 등을 저장하며 입금 및 출금 기능을 구현합니다. 이때, 모든 새 계좌는 초기 잔액 10,000원으로 시작하며, 입금액이나 잔액에 대한 별도의 유효성 검사는 생략합니다.

1. Account 클래스 설계

다음 정보를 담고 기능을 수행할 수 있는 Account 클래스를 설계하세요.

  • 필드 (Field/멤버 변수):
    • 계좌 번호 (String accountNumber)
    • 계좌 소유주 이름 (String ownerName)
    • 잔액 (long balance)
  • 생성자 (Constructor):
    • 계좌 번호와 소유주 이름을 매개변수로 받아 필드를 초기화하는 생성자를 만드세요. 잔액은 초기화 시 무조건 10000으로 설정합니다.
  • 접근자 (Getter Methods):
    • 외부에서 계좌 번호, 소유주 이름, 현재 잔액을 조회할 수 있도록 getAccountNumber(), getOwnerName(), getBalance() 메서드를 구현하세요.
  • 기능 메서드 (Functional Methods):
    • deposit(long amount) (입금):
      • 입금액(amount)을 잔액에 추가합니다. (유효성 검사 불필요)
      • 성공적으로 입금되면 "[소유주 이름] 입금 완료. 현재 잔액: XXX원"을 출력합니다.
    • withdraw(long amount) (출금):
      • 출금액(amount)을 잔액에서 차감합니다. (잔액 부족 검사 불필요)
      • 성공적으로 출금되면 "[소유주 이름] 출금 완료. 현재 잔액: XXX원"을 출력합니다.

2. BankMain 클래스 (실행 클래스) 구현

BankMain 클래스에서 다음을 수행하세요.

  1. Account 클래스의 객체를 2개 생성합니다.
  2. 첫 번째 계좌(acc1)를 사용하여 다음 작업을 순서대로 수행하고 잔액을 확인하세요.
    •     50,000원 입금
    •     50,000원 출금
  3. 모든 작업 후 최종 잔액을 출력하세요.

 

💡 학습 포인트

이 실습은 자바의 클래스 정의, 생성자, 필드 캡슐화(private 사용), 그리고 객체의 상태를 변경하는 메서드 구현에 집중합니다. 유효성 검사를 제외하여 핵심적인 객체 지향 문법 연습에만 초점을 맞춥니다.

 

힌트  1) System.out.printf("[%s] %d원 입금 완료. 현재 잔액: %d원%n", this.ownerName, amount, this.balance); 
         2)Account acc2 = new Account("333-987-654321", "김철수");
         3) System.out.printf("계좌 소유주: %s, 초기 잔액: %d원%n", acc2.getOwnerName(), acc2.getBalance());

 

🚀 실행 결과

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

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

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

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