Ahhoz, hogy megértsük, hogyan működnek az osztályok, a változók és a metódusok a Java-ban, kulcsfontosságú, hogy megértsük a statikus és a nem statikus fogalmát. A nem statikus tagok meghatározott osztálypéldányokhoz, míg a statikus tagok az osztályhoz kapcsolódnak. Ebben a részben a statikus és a nem statikus Java komponenseket állítjuk szembe, kiemelve azok különbségeit és lehetséges alkalmazásait.
Társult, összekapcsolt, társított valamivel
Statikus: A statikus tagok (változók és metódusok) nem egyedi példányokhoz, hanem magához az osztályhoz kapcsolódnak.
Nem statikus: A nem statikus tagok az osztály minden példányára jellemzőek, mivel az osztályból létrehozott objektumokhoz vannak kötve.
ábécé számok
Memóriakiosztás
Statikus: A statikus tagoknak csak egyszer van lefoglalva a memória, az osztály betöltésekor. Az osztály összes példánya között megosztva vannak.
Nem statikus: A nem statikus tagoknak az osztály minden példányához külön-külön van lefoglalva a memória. Minden objektumnak megvan a maga nem statikus tagjának másolata.
Hozzáférés
Statikus: A statikus tagok közvetlenül elérhetők az osztálynévvel, majd a tagnévvel (pl. Osztálynév.tagnév). A programon belül bárhonnan elérhetők.
Nem statikus: A nem statikus tagokhoz objektumhivatkozás segítségével lehet hozzáférni, amelyet a tagnév követ (pl. objectReference.memberName). Az osztály egy adott példányára jellemzőek.
Inicializálás
Statikus: A statikus tagok inicializálása az osztály memóriába való betöltésekor történik, általában a program indításakor. Az inicializálás csak egyszer történik meg.
Nem statikus: A nem statikus tagok inicializálása az osztály minden példányának létrehozásakor történik, általában az új kulcsszó használatával. Az inicializálás minden objektumnál külön történik.
Hatály
Statikus: A statikus tagok globális hatókörrel rendelkeznek, és a programon belül bárhonnan elérhetők, még az osztály példányának létrehozása nélkül is.
Nem statikus: A nem statikus tagoknak helyi hatókörük van, és csak az osztály egy példányán keresztül érhetők el. Objektum létrehozása nélkül nem érhetők el.
Hozzáférés a tagokhoz
Statikus: A statikus tagok csak az azonos osztályon belüli többi statikus taghoz férhetnek hozzá. Nem férhetnek hozzá közvetlenül a nem statikus tagokhoz.
Nem statikus: A nem statikus tagok statikus és nem statikus tagokhoz is hozzáférhetnek ugyanazon az osztályon belül. Közvetlen hozzáféréssel rendelkeznek minden taghoz.
Használat
Statikus: A statikus tagokat általában olyan segédprogramokhoz, konstansokhoz vagy változókhoz használják, amelyek nem specifikusak az egyes példányokra. Például egy matematikai osztály, amely matematikai függvényeket tartalmaz.
Nem statikus: A nem statikus tagokat példányspecifikus viselkedésre használják, mivel minden objektumra jellemző adatokat tartalmaznak. Például példányváltozók, amelyek minden objektumhoz egyedi értékeket tárolnak.
pénztár gitben
Memória hatékonyság
Statikus: A statikus tagok csak egyszer fogyasztanak memóriát, függetlenül a létrehozott példányok számától. Memóriatakarékosak lehetnek, ha ugyanazokat az adatokat kell megosztani az összes objektum között.