실습 7.3 BankAccount
- Study/Java source
- 2009. 4. 7. 23:28
// 실습 7.3 : BankAccount.java
// 입금, 출금, 계좌 이체와 잔고 확인과 같은 기본 서비스들을 제공하는
// 은행 계좌를 나타낸다.
public class BankAccount
{
// 변수 선언
// 각 변수는 public, private, 혹은 static 중 하나의 키워드를 필요로 한다.
// 이 객체 밖에서 누구도 계좌번호, 예금주와 잔고를 바꿀 수 없어야 한다.
//// 여기에 코드를 삽입하세요.E
private String name;
private int account;
private double balance;
// 계좌들의 수는 특정 계좌를 기술하지 않는다.
// 대신에, 그것은 이 클래스에 대한 일반적인 사실이다.
// 여기에 필요한 한 줄의 코드를 입력하세요.
static int count=0;
// 생성자 메소드
// 생성자 메소드
// 목적: 계좌의 번호, 예금주와 잔고를 각각 주어진 값으로 만든다.
// @입력 매개변수
// account_number - 계좌의 새 번호
// name - 예금주
// init_balance - 초기 입금액
public BankAccount(int account_number, String name, double init_balance)
{
// 계좌의 번호를 초기화한다
// 여기에 필요한 한 줄의 코드를 입력하세요.
this.account = account;
// 계좌의 예금주를 초기화한다
// 여기에 필요한 한 줄의 코드를 입력하세요.
this.name=name;
// 계좌의 잔고를 초기화한다
// 여기에 필요한 한 줄의 코드를 입력하세요.
balance=init_balance;
// 만들어진 계좌의 수를 하나만큼 증가시킨다
// 여기에 필요한 한 줄의 코드를 입력하세요.
count++;
} // end BankAccount
// 접근자 메소드
// 메소드: getName
// 목적: 계좌의 예금주를 되돌려준다.
// @입력 매개변수 ? 없음
// @되돌려 주는 값: 계좌의 예금주
public String getName()
{
// 예금주는 private 변수이기 때문에 다른 객체들은 그것을 볼 수 없다.
// 그런데 당신이 예금주를 private 변수로 만들지 않았다면, 그렇게 해야 한다.
// 따라서 우리는 그 값을 돌려 주는 public 메소드를 만들고 싶다. 그와 같이 하면,
// 어느 누구도 예금주를 바꿀 수 없다, 그러나 누구나 그것을 읽을 수는 있다.
// 당신이 예금주가 접근자 메소드를 가진 private 변수여야 하는 이유를
// 이해하지 못한다면 강사에게 물어 보아라.
// 여기에 필요한 한 줄의 코드를 입력하세요.
return name;
}
// 메소드: getAccountNumber
// 목적: 계좌의 번호를 되돌려준다.
// @입력 매개변수 ? 없음
// @되돌려 주는 값: 계좌의 번호
public int getAccountNumber()
{
// 여기에 필요한 한 줄의 코드를 입력하세요.
return account;
}
// 메소드: getBalance
// 목적: 계좌의 현 잔고를 되돌려준다.
// @입력 매개변수 ? 없음
// @되돌려 주는 값: 계좌의 현 잔고
public double getBalance()
{
// 여기에 필요한 한 줄의 코드를 입력하세요.
return balance;
}
// 메소드: getNumberofAccount
// 목적: 계좌의 수를 되돌려준다.
// @입력 매개변수 ? 없음
// @되돌려 주는 값: 계좌의 수
public static int getNumberofAccount()
{
// 여기에 필요한 한 줄의 코드를 입력하세요.
return count;
}
// 변경자 메소드들
// 메소드: Deposit
// 목적: 잔고를 주어진 값만큼 증가시킨다.
// 입금액이 0보다 작으면 적절한 오류메시지를 출력한다.
// @입력 매개변수
// Amount ? 입금액
// @되돌려 주는 값: 없음
public void Deposit(int Amount)
{
if (Amount < 0)
{
System.out.println("오류: 입금액은 양수여야한다.");
System.out.println("계좌번호: " + account);
System.out.println("입금액: " + Amount);
}
else
balance=balance+Amount;
// 여기에 필요한 한 줄의 코드를 입력하세요.
}
// 메소드: Withdraw
// 목적: 잔고를 출금액만큼 감소시킨다.
// 출금액이 잔고보다 많으면 적절한 오류메시지를 출력한다.
// @입력 매개변수
// Amount ? 출금액
// @되돌려 주는 값: 없음
public void Withdraw(int Amount)
{
if (Amount < 0)
{
System.out.println("오류: 출금액은 양수여야한다.");
System.out.println("계좌번호: " + account);
System.out.println("출금액: " + Amount);
}
else if (balance < Amount)
{
System.out.println("오류: 현 잔고가 충분하지 않다.");
System.out.println("계좌번호: " + account);
System.out.println("출금액: " + Amount);
System.out.println("잔고: " + balance);
}
else
balance=balance-Amount;
// 여기에 필요한 한 줄의 코드를 입력하세요.
}
// 메소드: Transfer
// 목적: 현 계좌에서 넘어 온 계좌로 이체액만큼 이체한다.
// 이체액이 잔고보다 많으면 적절한 오류메시지를 출력한다.
// @입력 매개변수
// acct ? 이체 계좌
// Amount ? 이체액
// @되돌려 주는 값: 없음
public void Transfer(BankAccount acct, int Amount)
{
if (Amount < 0)
{
System.out.println("오류: 이체액은 양수여야 한다.");
System.out.println("계좌번호: " + account);
System.out.println("이체액: " + Amount);
}
else if (balance < Amount)
{
System.out.println("오류: 현 잔고가 이체하기에 충분하지 않다.");
System.out.println("계좌번호: " + account);
System.out.println("이체액: " + Amount);
System.out.println("잔고: " + balance);
}
else
this.balance=this.balance-Amount;
acct.balance=acct.balance+Amount;
// 여기에 필요한 한 줄의 코드를 입력하세요.
}
// 메소드: toString
// 목적: 이 객체의 현재 상태를 나타내는 문자열을 되돌려 준다.
// @되돌려 주는 값: 현 객체의 변수들과 대응하는 값들을 포함하는 문자열
public String toString()
{
return (account + "\t" + name + "\t" + balance);
}
// 메인 메소드
public static void main (String[] args)
{
// 두 개의 계좌 객체들을 만들고 여러 서비스를 요청한다.
BankAccount acct1 = new BankAccount(1, "왕건", 10000);
BankAccount acct2 = new BankAccount(2, "궁예", 20000);
// 계좌의 상태를 출력한다
System.out.println(acct1);
System.out.println(acct2);
// acct1 계좌에 100,000원을 입금한다
// 여기에 필요한 한 줄의 코드를 입력하세요.
acct1.Deposit(100000);
System.out.println(acct1);
// acct1 계좌로부터 50,000원을 출금한다
// 여기에 필요한 한 줄의 코드를 입력하세요.
acct1.Withdraw(50000);
System.out.println(acct1);
// acct2 계좌에 200,000원을 입금한다
// 여기에 필요한 한 줄의 코드를 입력하세요.
acct2.Deposit(200000);
System.out.println(acct2);
// acct2 계좌에서 acct1로 70,000원을 계좌이체한다
// 여기에 필요한 한 줄의 코드를 입력하세요.
acct2.Transfer(acct1, 70000);
System.out.println(acct1);
System.out.println(acct2);
// acct1 계좌에 30,000원을 입금한다
// 여기에 필요한 한 줄의 코드를 입력하세요.
acct1.Deposit(30000);
System.out.println(acct1);
// acct2 계좌로부터 60,000원을 출금한다
// 여기에 필요한 한 줄의 코드를 입력하세요.
acct2.Withdraw(60000);
System.out.println(acct2);
// 만들어진 계좌들의 수를 출력한다
// 여기에 필요한 두 줄의 코드를 입력하세요.
System.out.println("\n만들어진 계좌들의 수는 "+getNumberofAccount()+"이다.");
}
}
'Study > Java source' 카테고리의 다른 글
실습8.1 Course&driver (0) | 2009.04.07 |
---|
이 글을 공유하기