Kotlin에서 정적 변수 생성 및 사용

Kailash Vaviya 2024년2월15일
  1. Kotlin에서 정적 변수 선언
  2. Companion 객체를 사용하여 Kotlin 정적 변수 생성
  3. @JvmStatic 주석을 사용하여 Kotlin 정적 변수 생성
Kotlin에서 정적 변수 생성 및 사용

Java에서 변수를 static으로 선언하면 객체를 만들 필요 없이 다른 클래스에서 사용할 수 있습니다. 정적 변수의 메모리는 한 번만 할당된다는 의미입니다.

JVM은 정적 변수에 메모리를 여러 번 할당하지 않으므로 효율적인 메모리 관리에 사용됩니다. 그러나 Kotlin에는 정적 키워드가 없습니다. 그렇다면 Kotlin에서 정적 변수를 선언하는 방법은 무엇입니까?

이 기사에서는 Kotlin에서 정적 변수의 개념을 구현하는 방법을 소개합니다.

Kotlin에서 정적 변수 선언

Kotlin에는 static 키워드가 없지만 다음을 사용하여 동일한 메모리 관리 효율성을 달성할 수 있습니다.

  • Companion 개체
  • @JvmStatic 주석

두 가지 방법을 모두 살펴보고 Kotlin 정적 변수를 구현하는 예를 살펴보겠습니다.

Companion 객체를 사용하여 Kotlin 정적 변수 생성

companion 키워드를 사용하여 정적 변수 기능을 달성하는 데 도움이 되는 companion 객체를 생성할 수 있습니다. 객체 앞에 companion 키워드를 사용해야 합니다.

이러한 개체는 클래스의 private 멤버에 액세스할 수 있습니다. 따라서 메모리를 두 번 할당할 필요가 없습니다. 클래스 이름을 사용하여 이러한 멤버에 액세스할 수 있습니다.

다음은 companion 객체를 사용하여 Kotlin에서 정적 기능을 구현하는 예입니다.

fun main(args: Array<String>) {
    println("We are accessing a class variable without creating object.\n" + staticExample.privateVar)
}

class staticExample{
    companion object {
        val privateVar = "Hi, you are accessing a static variable."
    }
}

출력:

컴패니언 객체를 사용하여 Kotlin 정적 변수 생성

여기를 클릭하여 예제의 데모를 확인하십시오.

@JvmStatic 주석을 사용하여 Kotlin 정적 변수 생성

companion 객체 멤버는 Java의 정적 변수와 비슷하지만 약간의 차이가 있습니다. 런타임 동안 companion 개체는 여전히 실제 개체의 구성원입니다. 따라서 인터페이스를 구현할 수도 있습니다.

그러나 Kotlin에서 정적 변수를 선언하는 한 가지 방법은 @JvmStatic 주석을 사용하는 것입니다. 변수를 선언할 때 @JvmStatic 주석을 사용하면 JVM은 이를 실제 정적 변수로 간주합니다.

다음은 @JvmStatic 주석을 사용하여 변수를 선언하는 예입니다.

fun main(args: Array<String>) {
    println("We are accessing a class variable without creating object.\n" + staticExample.privateVar)
}

object staticExample{
    @JvmStatic
    val privateVar = "Hi, you are accessing a static variable."
}

출력:

@JvmStatic 주석을 사용하여 Kotlin 정적 변수 생성

여기를 클릭하여 예제의 데모를 확인하십시오.

Kailash Vaviya avatar Kailash Vaviya avatar

Kailash Vaviya is a freelance writer who started writing in 2019 and has never stopped since then as he fell in love with it. He has a soft corner for technology and likes to read, learn, and write about it. His content is focused on providing information to help build a brand presence and gain engagement.

LinkedIn

관련 문장 - Kotlin Static