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ή ως δήλωση πακέτου.