$5 + 10 CHF = $10(환율이 2:1일 경우)
$5 X 2 = $10
amount를 private으로 만들기
Dollar 부작용(side effect)?
Money 반올림
equals()
hashcode()
Equal null
Equal object
5CHF X 2 = 10CHF
Dollar/Franc 중복
공용 equals
공용 times
Franc과 Dollar 비교하기
통화?
testFrancMultiplication 제거
테스트 케이스 추가
@Test
public void testCurrency(){
assertEquals("USD", Money.dollar(1).currency());
assertEquals("CHF", Money.franc(1).currency());
}
우선 Money에 currency() 메서드를 선언하자.
abstract String currency();
String currency() {
return "CHF";
}
String currency() {
return "USD";
}
private String currency;
public Franc(int amount) {
this.amount = amount;
this.currency = "CHF";
}
String currency() {
return currency;
}
private String currency;
public Dollar(int amount) {
this.amount = amount;
this.currency = "USD";
}
String currency() {
return currency;
}
흠... 가만보니 저기 필드랑 요기 currency() 함수는 위로 올릴 수 있을 것 같다
public static Money dollar(int amount) {
return new Dollar(amount,"USD");
}
public static Money franc(int amount) {
return new Franc(amount, "CHF");
}
abstract Money times(int multiplier);
String currency(){
return currency;
}
public Franc(int amount, String currency) {
super(amount,currency);
}
public Dollar(int amount, String currency) {
super(amount,currency);
}
$5 + 10 CHF = $10(환율이 2:1일 경우)
$5 X 2 = $10
amount를 private으로 만들기
Dollar 부작용(side effect)?
Money 반올림
equals()
hashcode()
Equal null
Equal object
5CHF X 2 = 10CHF
Dollar/Franc 중복
공용 equals
공용 times
Franc과 Dollar 비교하기
통화?
testFrancMultiplication 제거