반응형
이 게시물은 다음 링크를 참조하여 학습했습니다
이번 게시물의 주제는 "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 |