Sobes.tech
Junior

Πώς δημιουργείτε μια στατική μεταβλητή στο Kotlin;

sobes.tech AI

Απάντηση από AI

Στην Kotlin δεν υπάρχει άμεσος ισοδύναμος με τη λέξη-κλειδί static της Java. Αντ' αυτού, χρησιμοποιούνται:

  • companion object: Για τη δημιουργία "στατικών" μελών της κλάσης (πεδία και μεθόδους). Συνδέονται με την κλάση, όχι με μια συγκεκριμένη παρουσία.
  • Συναρτήσεις και ιδιότητες σε επίπεδο πακέτου: Δηλώνονται στο ανώτερο επίπεδο του αρχείου (Top-level declarations) και είναι προσβάσιμες από οπουδήποτε χωρίς την ανάγκη προσδιορισμού με το όνομα της κλάσης.

Παράδειγμα με companion object:

class MyClass {
    companion object {
        const val TAG = "MyClass" // Σταθερά κατά το χρόνο μεταγλώττισης (όπως το final static στην Java)
        var instanceCount = 0 // Μεταβλητή που σχετίζεται με την κλάση
    }

    init {
        instanceCount++
    }
}

Παράδειγμα με ιδιότητες σε επίπεδο πακέτου:

// Στο αρχείο MyGlobals.kt
const val GLOBAL_CONST = "This is a global constant"
var globalCounter = 0

fun incrementGlobalCounter() {
    globalCounter++
}

Διαφορές και επιλογή:

  • Το companion object είναι κατάλληλο για μέλη που σχετίζονται λογικά με την κλάση.
  • Τα μέλη σε επίπεδο πακέτου είναι χρήσιμα για γενικές βοηθητικές λειτουργίες, σταθερές ή μεταβλητές που δεν σχετίζονται με μια συγκεκριμένη κλάση.
  • Για σταθερές κατά το χρόνο μεταγλώττισης, χρησιμοποιήστε το const val μέσα σε companion object ή ως δήλωση πακέτου.