Kotlin에서는 하기와 같이 객체를 선언 할 수 있다.

object TestObject
{
  var tempStr: String = ""
  var tempInt: Int = 0
  fun print()
  {
    println(tempStr)
    println(tempInt)
  }
}

fun main(args: Array<String>)
{
  // 식별자 Person으로 객체에 바로 접근 가능
  TestObject.tempStr = "Test Object"
  TestObject.tempInt = 100
  TestObject.print()
}

위의 예제와 같이 new로 생성하지 않고, java의 singletone을 사용하는 것과 같이 사용 할 수 있다.

 

동반자 객체는 클래스 안에 포함되는 이름 없는 객체를 뜻한다.

다시 말하면, kotlin에서는 static 키워드가 존재하지 않는다. 하지만 동반자 객체를 이용하면, class내에서 java의 static 과 같은 함수를 만들 수 있다.

예를 들면 다음과 같다.

class TestClass private constructor()
{
  companion object
  {
    fun create(): TestClass
    {
      countCreated += 1
      return TestClass()
    }

    var countCreated = 0
    private set
  }
}

fun main(args: Array<String>)
{
  val a = TestClass.create()
  val b = TestClass.create()
  println(TestClass.countCreated)
}

자세한 설명은 하기의 블로그를 참고하면 더욱 도움이 된다.

참조 사이트 : https://medium.com/@lunay0ung/kotlin-object-declaration-%EA%B7%B8%EB%A6%AC%EA%B3%A0-companion-object-feat-static-d5c97c21168

 

Kotlin: Object Declaration, 그리고 Companion Object (feat.static)

먼저, Object(객체)란 무엇일까?

medium.com

참고 : 초보자를 위한 Kotlin 200제 라는 책을 기반으로 공부 내용을 정리하였습니다.

'Kotlin' 카테고리의 다른 글

[Kotlin] const  (0) 2020.08.29
[Kotlin] inline 함수  (0) 2020.08.29
[Kotlin] 기초 - 함수  (0) 2020.08.27
[Kotlin] 기초 - typealias, 제어문  (0) 2020.08.27
[Kotlin] 기초 - 정수/실수/문자 타입과 문자열  (0) 2020.08.27

+ Recent posts