반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 설치
- Eclipse
- express
- 서버
- 의존주입
- 변수
- script
- jquery
- 정보처리기사
- Kotlin
- kotlin2.0
- 코틀린
- kotlininaction
- 조건문
- php
- 이클립스
- java
- 그림으로 배우는 서버구조
- npm
- 스나이퍼팩토리
- ios
- php변수
- node
- Flutter
- 스터디
- node.js
- SwiftUI
- 플러터
- android
- php개발
Archives
- Today
- Total
mygomii
[Kotlin] 4.3 컴파일러가 생성한 메서드: 데이터 클래스와 클래스 위임 본문
반응형
- 자바에서는 equals , hashcode , toString 등 비슷한 방식으로 기계적으로 구현할 수 있는 몇가지 메서드가 정의되어 있음
- 코틀린 컴파일러는 한 걸음 더 나가서 이런 메서드를 기계적으로 생성하는 작업을 보이지 않는 곳에서 해줌
- 코틀린의 모든 클래스는 기본적으로 최상위 클래스인 Any를 상속받으며, 이때 자동으로 다음의 세 가지 메서드가 제공
- equals(other: Any?)
- 기본적으로 참조(주소) 동등성 비교를 수행
- 객체의 내용에 기반한 동등성 비교가 필요하다면 재정의가 필요
- hashCode()
- 객체의 해시 코드를 반환하며, equals()와의 일관성을 유지
- equals()를 재정의하는 경우, 반드시 hashCode()도 같이 재정의해야 함
- toString()
- 기본 구현은 클래스 이름과 해시 코드를 포함한 문자열을 반환
- 디버깅이나 로깅 목적으로 객체의 상태를 명확히 표현하도록 재정의할 수 있음
- 데이터 클래스의 경우, 위의 세 메서드 외에도 프로퍼티 기반의 copy()와 componentN() 메서드가 자동으로 생성되어, 객체 비교와 복사, 구조 분해 선언이 용이해짐
- 클래스 위임 : by 키워드 사용
- 클래스 위임은 특정 인터페이스의 구현을 다른 객체에게 위임하는 패턴
- 이를 위해 Kotlin에서는 by 키워드를 사용
- 예를 들어, 어떤 클래스가 인터페이스를 구현할 때, 실제 구현은 다른 객체에 맡기고 호출은 자동으로 해당 객체의 메서드가 실행되도록 할 수 있음
반응형
'Kotlin' 카테고리의 다른 글
[Kotlin] 5.1 람다식과 멤버 참조 (0) | 2025.04.10 |
---|---|
[Kotlin] 4.4 object 키워드: 클래스 선언과 인스턴스 생성을 한꺼번에 하기 (0) | 2025.04.08 |
[Kotlin] 4.2 뻔하지 않은 생성자나 프로퍼티를 갖는 클래스 선언 (0) | 2025.04.03 |
[Kotlin] 4.1 클래스 계층 정의 (1) | 2025.04.02 |
[Kotlin] 3.5 문자열과 정규식 다루기 (0) | 2025.04.01 |