
57
3
장
자바 클래스에서 코틀린 클래스로
override fun hashCode(): Int {
return Objects.hash(amount, currency)
}
override fun toString(): String {
return amount.toString() + “ “ + currency.currencyCode
}
fun add(that: Money): Money {
require(currency == that.currency) {
“cannot add Money values of different currencies”
}
return Money(amount.add(that.amount), currency)
}
companion object {
@JvmStatic
fun of(amount: BigDecimal, currency: Currency): Money {
return Money(
amount.setScale(currency.defaultFractionDigits),
currency
)
}
... 오버로딩한 편의 함수
}
}
이 코틀린 클래스는 여전히 주 생성자를 사용하지만 생성자 앞에
private
이 붙어있다. 이런
구문은 약간 투박해서 변환기가 생성한 코드의 형식을 변경해서 ...