728x90
자바 static
- static이 붙은 변수와 메소드를 각각 클래스 변수, 클래스 메소드라 부른다.
- static이 붙지 않은 클래스 내의 변수와 메소드는 각각 인스턴스 변수, 인스턴스 메소드라 한다.
- static이 붙은 멤버는 클래스가 메모리에 적재될 때 자동으로 함께 생성되므로 인스턴스 생성 없이도 클래스명 다음에 점(.)을 쓰면 바로 참조할 수 있다.
Companion object는 static이 아니고 객체이다
코틀린 companion object는 static이 아니며 사용하는 입장에서 static으로 동작하는 것처럼 보일 뿐입니다.
companion object는 MyClass클래스가 메모리에 적재되면서 함께 생성되는 동반되는 객체이다. (클래스와 동반자 느낌)
Companion object의 멤버에 접근하기 위해서는 클래스명.Companion.멤버(변수,함수) 으로 접근 할 수 있다.
MyClass.prop 와 MyClass.method() 는 MyClass.Companion.prop와 MyClass.Companion.method() 대신쓰는 축양 표현이라는 점
클래스 내 정의된 companion object는 클래스 이름만으로드 참조 접근이 가능
Companion object에 이름을 지을 수 있다.
클래스내 Companion object는 하나만 사용할 수 있다.
인터페이스 내에도 Companion object를 정의할 수 있다.
참고
https://www.bsidesoft.com/8187
[kotlin] Companion Object (1) - 자바의 static과 같은 것인가? - Bsidesoft co.
개요 코틀린(Kotlin)의 Companion object는 단순히 자바(Java)의 static 키워드를 대체하기 위해서 탄생했을까요? 이 갑작스러운 질문은 코틀린에서 왜 static을 안 쓰게 되었는지 이해하는 데 큰 도움이 될
www.bsidesoft.com
728x90
'안드로이드 > CS' 카테고리의 다른 글
QUERY_ALL_PACKAGES (0) | 2022.11.02 |
---|---|
안드로이드 뷰 그려지는 과정 (0) | 2022.11.01 |
안드로이드 앱 서명 (1) | 2022.10.31 |
안드로이드 앱 번들 (0) | 2022.10.31 |
안드로이드 Dalvik과 ART 작동방식 (0) | 2022.10.26 |