라벨이 Java Static인 게시물 표시

Kotlin Companion

Kotlin Companion 정적 멤버 클래스를 정의할 때 변수나 메서드를 정적 멤버로 정의하면 객체를 생성하지 않고 사용할 수 있다. Java 에서는 static 을 사용하는데, Kotlin은 Companion 객체를 사용한다. 같은 클래스를 통해서 만든 객체들이 같은 멤버 변수를 사용한다면 공통적으로 한가지 값만 사용할 때 정적 멤버를 사용한다. fun main () { TestClass.testFun1() // Error } class TestClass { val a1 = 100 fun testFun1 () { println ( "testFun1" ) } } Kotlin: Unresolved reference: testFun1 Class 를 정의하고 그 Class 에 대한 객체 (Instance)를 생성하지 않고 함수를 사용하고자 할 때 에러가 발생한다. fun main () { var obj1 = TestClass() println (obj1. a1 ) obj1.testFun1() println(obj1.a2) // Error } class TestClass { var a1 = 100 companion object { var a2 = 1000 fun testFun2 () { println ( "testFun2" ) } } fun testFun1 () { println ( "testFun1" ) } } Kotlin: Unresolved reference: a2  companion object 로 정의된 a2 멤버변수는 객체 참조 변수를 통해서 접근할 수 없다. fun main () { var obj1 = TestClass() println (obj1. a1 )