Különbség a példányváltozó és a helyi változó között

Különbség a példányváltozó és a helyi változó között
Különbség a példányváltozó és a helyi változó között

Videó: Különbség a példányváltozó és a helyi változó között

Videó: Különbség a példányváltozó és a helyi változó között
Videó: Milyen födémek vannak? Mikor melyiket érdemes választani? - A Statikus Válaszol 2024, November
Anonim

Példányváltozó vs helyi változó

A példányváltozó az objektumorientált programozásban jelen lévő változótípus. Ez egy változó, amely egy osztályban van definiálva, és ennek az osztálynak minden egyes objektuma a változó külön másolatát tartalmazza. Másrészt a helyi változók használata nem korlátozódik az objektumorientált programozási nyelvekre. Ez egy olyan változó, amely csak egy adott kódblokkon belül értékelhető (pl. függvény, hurokblokk stb.), amelyben definiálva van. Emiatt a helyi változóknak helyi hatókörük van.

Mi az a példányváltozó?

A példányváltozók az objektumorientált programozásban használatosak az osztály minden objektumának állapotának tárolására. Tagváltozóknak vagy mezőváltozóknak is nevezik őket. A példányváltozók a statikus kulcsszó használata nélkül deklarálódnak a Java-ban. A példányváltozókban tárolt értékek minden objektumra egyediek (minden objektumnak külön másolata van), és a bennük tárolt értékek az adott objektum állapotát reprezentálják. Egy példányváltozó számára helyet foglal le a kupacban, amikor az objektum le van foglalva a kupacban. Ezért a példányváltozók mindaddig a memóriában maradnak, amíg az objektum él. Például egy autó színe független egy másik autó színétől. Tehát egy autóobjektum színe egy példányváltozóban tárolható. A gyakorlatban a példányváltozókat osztályokon belül deklarálják, és a metódusokon kívül. Általában a példányváltozók privátként vannak deklarálva, így csak a deklarált osztályon belül érhetők el.

Mi az a helyi változó?

A helyi változók olyan változók, amelyek helyi hatókörrel rendelkeznek, és egy adott kódblokkon belül vannak deklarálva. A lokális változókat olyan változóknak tekinthetjük, amelyeket egy metódus az ideiglenes állapot tárolására használ. A helyi változó hatókörét a változó deklarált helye határozza meg, és erre a célra nem használnak speciális kulcsszavakat. A helyi változóhoz való hozzáférés általában a deklarált kódblokkon belül korlátozott (azaz az adott kódblokk nyitó és záró kapcsos zárójelei között). A helyi változókat általában a hívási veremben tárolják. Ez lehetővé tenné, hogy a rekurzív függvényhívások fenntartsák a helyi változók saját másolatait, amelyeket külön memóriacímterekben tárolnak. Amikor a metódus befejezi a végrehajtását, a metódusra vonatkozó információk kiugrik a hívási veremből, és megsemmisítik a tárolt helyi változókat is.

Mi a különbség a példányváltozó és a helyi változó között?

A példányváltozók a metódusokon kívüli osztályokon belül vannak deklarálva, és egy objektum állapotát tárolják, míg a lokális változókat kódblokkon belül deklarálják, és egy metódus állapotának tárolására szolgálnak. Egy példányváltozó addig él, amíg az adott változót tartalmazó objektum él, míg egy helyi változó az adott metódus/kódblokk végrehajtása alatt él. Egy példányváltozó (amely nyilvánosan deklarált) elérhető az osztályon belül, míg a helyi változó csak a deklarált kódblokkon belül érhető el. A példányváltozók használata csak az objektumorientált programozásra korlátozódik, míg a helyi változóknak nincs ilyen korlátozása.

Ajánlott: