$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 제거
지금 Franc와 Dollar에는 처량한 생성자만 있다.
코드의 의미를 변경하지 않으면서도 하위 클래스에 대한 참조를 상위클래스에 대한 참조로 변경할 수 있다. Money.franc()와 Money.dollar()를 바꿔보자
public static Money dollar(int amount) {
return new Money(amount,"USD");
}
public static Money franc(int amount) {
return new Money(amount, "CHF");
}
다른 동치성 테스트를 한번 보자
@Test
public void testEquality(){
assertTrue(Dollar.dollar(5).equals(Dollar.dollar(5)));
assertFalse(Dollar.dollar(5).equals(Dollar.dollar(6)));
assertTrue( Franc.franc(5).equals( Franc.franc(5)));
assertFalse( Franc.franc(5).equals( Franc.franc(6)));
assertFalse( Franc.franc(5).equals(Dollar.dollar(5)));
}
///흠... 세번째와 네번째 은 첫번째와 두번째 단언과 중복되니 지우자///
@Test
public void testEquality(){
assertTrue(Dollar.dollar(5).equals(Dollar.dollar(5)));
assertFalse(Dollar.dollar(5).equals(Dollar.dollar(6)));
assertFalse( Franc.franc(5).equals(Dollar.dollar(5)));
}
$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 제거
작업을 검토하자