실습과제 내용
계좌 이체
지금까지 만들어 온 은행 시뮬레이션 프로그램에 송금 기능을 담당하는 transfer 메소드를 써봅시다. 메소드 오버로딩의 개념을 이용해서 BankAccount 클래스에 두 개의 transfer 메소드를 쓰고, Person 클래스에도 두 개의 transfer 메소드를 쓰겠습니다.
송금 메소드 작성 (BankAccount.java)
송금은 계좌 - 계좌 방식으로 이루어집니다. 하지만 사용자의 편리함을 위해서 아래의 두 메소드를 만들겠습니다:
public class BankAccount {
// 저번 과제에서의 코드를 포함해주세요!
// 첫 번째 파라미터: 받는 사람 (Person)
// 두 번째 파라미터: 이체할 금액 (정수)
// 리턴 : 성공여부 (불린)
public boolean transfer(Person to, int amount) {
// insert code here
}
// 첫 번째 파라미터: 받는 사람의 계정 (BankAccount)
// 두 번째 파라미터: 이체할 금액 (정수)
// 리턴 : 성공여부 (불린)
public boolean transfer(BankAccount to, int amount) {
// insert code here
}
}
(1) 송금 성공 시 true를 리턴, 실패시 false를 리턴합니다.
(2) 송금하고자 하는 금액(amount)이 음수일 때 송금 실패입니다.
(3) amount가 잔고(balance)보다 클 때 송금 실패입니다.
(4) 나의balance를 amount 만큼 줄이고, 받는사람(to)의 balance를 amount만큼 늘려줍니다.
(5) 송금 성공시 아래 문구를 출력합니다:
true - from: [송금자 이름], to: [수신자 이름], amount: [송금액], balance: [송금자 잔고]
(6) 송금 실패시 아래 문구를 출력합니다:
false - from: [송금자 이름], to: [수신자 이름], amount: [송금액], balance: [송금자 잔고]
송금 메소드 작성 (Person.java)
위의 룰들을 지킨 송금 메소드를 Person 클래스 내에도 만듭니다.
public class Person {
// 저번 과제에서의 코드를 포함해주세요!
// 첫 번째 파라미터: 받는 사람 (Person)
// 두 번째 파라미터: 이체할 금액 (정수)
// 리턴 : 성공여부 (불린)
public boolean transfer(Person to, int amount) {
// insert code here
}
// 첫 번째 파라미터: 받는 사람의 계정 (BankAccount)
// 두 번째 파라미터: 이체할 금액 (정수)
// 리턴 : 성공여부 (불린)
public boolean transfer(BankAccount to, int amount) {
// insert code here
}
}
테스트
true - from: 문종모, to: 김신의, amount: 200000, balance: 300000
true - from: 김신의, to: 문종모, amount: 150000, balance: 150000
true - from: 문종모, to: 김신의, amount: 270000, balance: 180000
true - from: 김신의, to: 문종모, amount: 130000, balance: 290000
코드 작성
만들어야 할 메소드는 총 4개.
- BankAccount 클래스에 transfer(Person to, int amount)
- BankAccount 클래스에 transfer(BankAccount to, int amount)
- Person 클래스에 transfer(Person to, int amount)
- Person 클래스에 transfer(BankAccount to, int amount)
넷 다 같은 송금 기능을 담당하지만, 각각 다른 클래스에 다른 파라미터를 가지고 있다. 다 비슷하기 때문에 일단 하나만 작성해놓으면 다른 메소드들은 간단하게 해결할 수 있다. 실제 송금은 계좌와 계좌 사이에 이루어지는 것이기 때문에 먼저 2번 메소드를 작성하자.
BankAccount.java 파일의 transfer(Person to, int amount) 메소드는 BankAccount 클래스에 있는 transfer(BankAccount to, int amount) 메소드를 호출하여 정의
Person.java 파일의 transfer(Person to, int amount) 메소드는 BankAccount 클래스에 있는 transfer(BankAccount to, int amount) 메소드를 호출하여 정의
transfer(BankAccount to, int amount) 메소드는 BankAccount 클래스에 있는 transfer(Person to, int amount) 메소드를 호출하여 정의
'TIL > Java' 카테고리의 다른 글
[Java] this (0) | 2022.01.04 |
---|---|
[Java] 생성자(Constructor) (0) | 2022.01.03 |
[Java] 접근 제어자 (0) | 2021.12.31 |
[Java] 은행 시뮬레이션 프로그램_입금, 출금 메소드 작성하기 (0) | 2021.12.31 |
[Java] 인스턴스 (0) | 2021.12.30 |