logo

Különbség a statikus és a nem statikus között Java-ban

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.