KOTLIN

[KOTLIN] OBJECT 키워드

집한구석 2022. 5. 7. 17:04
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