Search
📗

25강. Companion 객체

무단 도용 및 복제, 사용 저작권 안내 수업 목적 외에 모든 교안 자료를 무단으로 도용 (URL 연결, 복제, 공유), 불법으로 복사하여 배포하는 것을 금지합니다. 꼭 지켜주세요!

1. 정적 멤버

클래스를 정의할 때 변수나 메서드를 정적 멤버로 정의하면 객체를 생성하지 않고 사용할 수 있다.
Java에서는 static을 사용하는데 Kotlin은 companion 객체를 사용한다.
companion object { val a2:Int = 200 fun test2(){ println("test2") } }
Kotlin
복사

2. Companion 멤버 사용하기

Companion 멤버는 객체 생성 없이 클래스의 이름으로 접근해서 사용한다.
println("TestClass.a2 : ${TestClass.a2}") TestClass.test2()
Kotlin
복사

3. Kotlin와 Java 사이에서 사용하기

Kotlin에서 Java의 static 멤버 사용은 다른 점이 없다.
println("JavaMain.java2 : ${JavaMain.java2}") JavaMain.javaTest2()
Kotlin
복사
만약 Kotlin에서 정의한 Companion 멤버 중 Java에서 사용할 수 있도록 하기 위해서는 @JavaStatic 으로 정의해야 한다.
companion object { @JvmStatic val a2:Int = 200 @JvmStatic fun test2(){ println("test2") } }
Kotlin
복사

4. 학습 정리

정리
Companion 멤버는 객체 생성 없이 클래스의 이름을 통해 접근해 사용한다.