데브허브 | DEVHUB | 코틀린 기초 문법 - 25일차 / object class 클래스코틀린 기초 문법 - 25일차 / object class 클래스
- 코틀린의
object 키워드는 크게 싱글턴 객체와 익명 객체 두 가지 방식으로 활용됩니다. ✌️
object 키워드를 사용하면 클래스의 단일 인스턴스만 메모리에 생성되고 재사용되는 싱글턴 패턴을 간결하게 구현할 수 있습니다. 🔄
object로 선언된 싱글턴 객체는 해당 객체가 처음 사용되는 시점에 메모리에 로드되고 초기화 블록(init)이 실행되는 지연 초기화(Lazy Initialization) 특성을 가집니다. ⏳
object는 특정 클래스 이름 없이 일회성으로 인터페이스를 구현하거나 클래스를 상속받는 익명 객체를 생성하는 데 사용됩니다. 이는 싱글턴이 아니며, 생성 시마다 새로운 인스턴스가 만들어집니다. 👻
- 클래스 내부에
companion object를 정의하여 자바의 static 멤버와 유사하게 클래스에 직접 접근 가능한 상수(const val)나 함수를 선언할 수 있으며, 이는 컴파일 타임에 결정됩니다. 🤝
- 코틀린 1.9.0 버전부터 도입된
data object는 싱글턴이면서 data class의 특징(예: toString() 자동 구현으로 객체 내용 표시)을 결합하여 객체 정보를 더 명확하게 표현합니다. 📊
object는 전역 상태 관리, 유틸리티 클래스, 설정 관리, 그리고 특히 UI 이벤트 리스너(익명 객체) 구현 등 다양한 상황에서 유용하게 사용됩니다. 🛠️
object는 객체 지향 디자인 패턴 중 하나인 싱글턴 패턴을 코틀린에서 효율적으로 구현하는 핵심 요소입니다. 📐