Junior — Middle
Kuidas saab Kotlinis kogu klassi deklareerida staatilisena, et see ei nõuaks eksemplari loomist?
sobes.tech AI
Vastus AI-lt
Kotlinis nėra static raktažodžio kaip Java, tačiau yra keli būdai deklaruoti klasės narius arba visą klasę taip, kad nereikėtų kurti egzemplioriaus:
- Object (object) — singleton objekto deklaravimas, kuris inicijuojamas vieną kartą ir prieinamas pagal pavadinimą:
object ManoSingleton {
fun padarykKažką() {
println("Sveiki iš singleton")
}
}
// Naudojimas
ManoSingleton.padarykKažką()
- companion object — statinių narių deklaravimas klasės viduje:
class ManoKlasė {
companion object {
fun staticMethod() {
println("Statinis metodas")
}
}
}
// Kvietimas
ManoKlasė.staticMethod()
- top-level funkcijos ir savybės — funkcijos ir kintamieji gali būti deklaruoti už klasės ribų, jie bus statiniai failo lygyje.
Jei norite, kad visa klasė būtų statinė ir nereikėtų kurti egzemplioriaus, dažniausiai naudojamas object.