반응형

이 게시물은 다음 링크를 참조하여 학습했습니다

 

[kotlin] Companion Object (1) - 자바의 static과 같은 것인가? - Bsidesoft co.

개요 코틀린(Kotlin)의 Companion object는 단순히 자바(Java)의 static 키워드를 대체하기 위해서 탄생했을까요? 이 갑작스러운 질문은 코틀린에서 왜 static을 안 쓰게 되었는지 이해하는 데 큰 도움이 될

www.bsidesoft.com

 

Object와 Companion Object

보통 Kotlin으로 싱글톤 패턴을 적용할 때 사용하는 Object. 그렇다면 Companion Object는 뭘까요? Object와 어떤 차이가 있을 까요?? 왜 싱글톤을 적용할 때 Object를 사용할 까요??? 그래서 Kotlin 공식 문서를

beenii.tistory.com

 

[Kotlin] static, object, companion object 차이

목차 우리는 보통 kotlin에서 java의 static 변수 또는 메서드를 사용하기 위해 object 키워드 또는 companion object를 사용한다. 아래처럼 말이다. 아래와 같이 object 를 사용하는 것을 object declaration이라..

nuritech.tistory.com

 

Kotlin Object vs Companion Object

If you want to make a class as Singleton. You can use “object” instead of “class”. It can make a class got a singleInstance.

medium.com

 

이번 게시물의 주제는 "Companion Object는 static과 다르다"이다.

스터디를 시작하면서 kotlin 기본문법 유튜브 영상을 봤는데, 강사분이 companion object = static이라는 얘기를 하는것을 봤다.

문법적으로 비슷한 기능을 제공한다는 의미라면 어느정도 맞는 얘기지만, 내가 알기로는 둘은 다른것이기 때문에 이에대해 정리하려 한다.

 

1. Object

kotlin에는 java에는 없는 object라는 키워드가 있다.

java에서는 싱글톤 패턴을 구현하기 위해 복잡한 코드들을 작성해야 하는 불편한 점이 있는데, kotlin에서는 object 키워드를 사용해주면 된다.

이외에도 익명객체를 정의할 때도 object 키워드를 사용한다.

 

2. companion object

companion object는 클래스의 동반 객체라 생각하면 된다.

object가 하나의 싱글톤 인스턴스라면, companion object클래스 내의 일부분을 싱글톤 객체로 가지고 싶을 때 사용한다.

  • companion object는 해당 클래스가 어디에선가 처음 로드될 때 초기화 된다.
  • companion object는 이름을 지어줄 수 있고, 생략할수도 있으며 생략하면 이름의 기본값은 Companion이다.
  • 클래스는 하나의 companion object만 가질 수 있다.

 

반응형

'Legacy' 카테고리의 다른 글

[Kotlin #10] Null Safety  (0) 2022.06.02
[Kotlin #9] lateinit, lazy  (0) 2022.05.24
[Kotlin #7] Sequences  (0) 2022.05.23
[Kotlin #6] 확장 함수(Extension Functions)  (0) 2022.05.23
[Kotlin #5] Inline Functions  (0) 2022.05.16

+ Recent posts