비교 2

[Kotlin] 비교 연산자 오버로딩

Kotlin in Action 을 공부하고 Effective kotlin 의 내용을 조금 참조하여 정리한 글입니다. 코틀린에서는 산술 연산자와 마찬가지로 원시 타입 값뿐 아니라 모든 객체에 대해 비교 연산을 수행할 수 있다. 자바에서는 객체 비교 시 `equals` 나 `compareTo` 를 호출해야 함 코틀린에서는 `==` 비교 연산자를 오버로딩하여 사용 가능 이번에는 비교 연산자를 지원하는 convention(관례) 를 살펴보자. 동등성 연산자: equals 코틀린은 `==` 연산자 호출을 `equals` 메서드 호출로 컴파일한다. 이는 다른 산술 연산자 오버로딩처럼 convention 을 적용한 것이다. `!=` 연산자를 사용하는 식도 `equals` 호출로 컴파일된다. (비교 결과를 뒤집은 값을..

Kotlin 2024.01.24

[Kotlin] 모든 클래스가 정의해야 하는 메서드 toString, equals, hashCode

Kotlin in Action 을 공부하고 Effective kotlin 의 내용을 조금 참조하여 정리한 글입니다. 자바와 마찬가지로 코틀린 클래스도 `toString`, `equlas`, `hashCode` 등을 오버라이드 할 수 있다. 이런 메서드들을 알아보면서 아래 `Client` 라는 클래스를 만들어서 예제에 사용하자. class Client(val name: String, val postalCode: Int) toString(): 문자열 표현 자바처럼 코틀린의 모든 클래스도 인스턴스의 문자열 표현을 얻을 방법을 제공한다. 주로 디버깅과 로깅 시 이 메서드를 사용한다. 기본 제공되는 객체의 문자열 표현은 `Client@5e9f23b4` 같은 방식이다. 이는 디버깅, 로깅 시 유용하지 않으며, `t..

Kotlin 2024.01.09