Sobes.tech
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:

  1. 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ą()
  1. companion object — statinių narių deklaravimas klasės viduje:
class ManoKlasė {
    companion object {
        fun staticMethod() {
            println("Statinis metodas")
        }
    }
}

// Kvietimas
ManoKlasė.staticMethod()
  1. 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.