728x90
Object 키워드
- Object 키워드는 object expression(객체 표현식) 이랑 object declartion(객체 선언) 두가지 방법으로 사용
- object expression으로 익명 클래스의 객체를 생성할 때 사용
- object declaration으로 사용시 접근 시점에서 하나의 객체만 생성됨
- 코틀린은 Object 키워드를 통해 싱글턴 패턴을 쉽게 사용 가능함
object declaration과 companion object를 이해하기 위해 작성
Object declaration
object Car {
fun print() {
println("자동차")
}
}
- object 키워드를 붙여서 생성해주면 싱글톤 패턴이 적용됨
- 코틀린은 object declaration을 통해 내부적으로 thread-safe한 싱글톤 패턴으로 생성함
- 자바보다 상대적으로 싱글톤 패턴 구현이 매우 간단함
Companion object
class Car {
//object 이름은 명시 안해도됨
companion object Instance {
fun printCarName() {
println("테슬라")
}
}
}
- 코틀린에는 static 멤버 변수 혹은 함수가 없어서, 인스턴스 없이 클래스 내부에 접근하고 싶을 때 클래스 내부에 companion object를 선언하면 됨
- companion object는 object declartion을 일반 클래스 내부에서 작성하는 것
- companion object 동반자 객체라고함
fun main() {
Car.Instance.printCarName();
Car.printCarName();
}
- companion object 선언된 멤버 변수 / 메소드 호출시 위와 같은 코드로 호출함
- companion object 이름은 호출시 명시하지 않아도됨
companion object는 선언하면 작성 시점에서 바로 객체화되며, 한번만 메모리에 할당이 되며, 선언된 companion object는 자바에서 해당 클래스의 inner 클래스로 작성이 됨
'KOTLIN' 카테고리의 다른 글
[KOTLIN] 확장함수 (0) | 2022.05.22 |
---|---|
[KOTLIN] Scope 함수 (0) | 2022.05.18 |
[KOTLIN] 컬렉션 (0) | 2022.05.18 |
[KOTLIN] OPEN 키워드 (0) | 2022.05.10 |
[KOTLIN] DATA CLASS (0) | 2022.05.07 |