Proměnná instance vs lokální proměnná
Proměnná instance je typ proměnné, která je přítomna v objektově orientovaném programování. Je to proměnná, která je definována ve třídě, a každý objekt této třídy obsahuje samostatnou kopii této proměnné. Na druhé straně použití lokálních proměnných není omezeno na objektově orientované programovací jazyky. Je to proměnná, kterou lze vyhodnotit pouze v rámci konkrétního bloku kódu (např. Funkce, smyčkový blok atd.), Ve kterém je definována. Z tohoto důvodu se uvádí, že lokální proměnné mají lokální rozsah.
Co je proměnná instance?
Proměnné instance se používají v objektově orientovaném programování pro ukládání stavu každého objektu do třídy. Jsou také známy jako členské proměnné nebo proměnné pole. Proměnné instance jsou deklarovány bez použití statického klíčového slova v Javě. Hodnoty uložené v proměnných instance jsou jedinečné pro každý objekt (každý objekt má samostatnou kopii) a hodnoty v nich uložené představují stav tohoto objektu. Místo pro proměnnou instance je přiděleno v haldě, když je tento objekt přidělen v haldě. Proměnné instance se proto uchovávají v paměti, dokud je objekt živý. Například barva jednoho vozu je nezávislá na barvě jiného vozu. Barva objektu automobilu tak může být uložena v proměnné instance. V praxi jsou proměnné instance deklarovány uvnitř tříd a mimo metody. Proměnné instance jsou obvykle deklarovány jako soukromé, takže k nim lze přistupovat pouze v rámci třídy, která je deklarována.
Co je to lokální proměnná?
Lokální proměnné jsou proměnné s lokálním rozsahem a jsou deklarovány v rámci specifického kódového bloku. Lokální proměnné lze chápat jako proměnné, které metoda používá k uložení svého dočasného stavu. Rozsah lokální proměnné je určen pomocí umístění, ve kterém je proměnná deklarována, a pro tento účel se nepoužívají speciální klíčová slova. Obvykle je přístup k místní proměnné omezen v kódovém bloku, který je deklarován (tj. Mezi otevíracími a zavíracími složenými závorkami tohoto kódového bloku). Lokální proměnné se obvykle ukládají do zásobníku volání. To by umožnilo rekurzivní volání funkcí udržovat své vlastní kopie lokálních proměnných, které mají být uloženy v samostatných paměťových adresních prostorech. Po dokončení provádění metody se informace o této metodě objeví v zásobníku volání a zničí také lokální proměnné, které byly uloženy..
Jaký je rozdíl mezi proměnnou Instance a místní proměnnou?
Proměnné instance jsou deklarovány v rámci tříd mimo metody a ukládají stav objektu, zatímco lokální proměnné jsou deklarovány v kódových blocích a používají se pro ukládání stavu metody. Proměnná instance je aktivní, dokud je objekt, který tuto proměnnou obsahuje, aktivní, zatímco lokální proměnná je aktivní během provádění této metody / kódového bloku. K proměnné instance (která je deklarována jako veřejná) lze přistupovat v rámci třídy, zatímco k místní proměnné lze přistupovat pouze v rámci bloku kódu, který je deklarován. Použití proměnných instance je omezeno pouze na objektově orientované programování, zatímco lokální proměnné takové omezení nemají.