Premenná inštancie verzus lokálna premenná
Premenná inštancie je typ premennej, ktorá je prítomná v objektovo orientovanom programovaní. Je to premenná, ktorá je definovaná v triede, a každý objekt tejto triedy má samostatnú kópiu tejto premennej. Na druhej strane sa použitie lokálnych premenných neobmedzuje na objektovo orientované programovacie jazyky. Je to premenná, ktorú je možné vyhodnotiť iba v rámci konkrétneho bloku kódu (napr. Funkcia, blok slučky atď.), V ktorom je definovaná. Z tohto dôvodu sa uvádza, že lokálne premenné majú lokálny rozsah.
Čo je premenná inštancie?
Premenné inštancie sa používajú v objektovo orientovanom programovaní na ukladanie stavu každého objektu v triede. Sú známe aj ako členské alebo poľné premenné. Premenné inštancie sú deklarované bez použitia statického kľúčového slova v Java. Hodnoty uložené v premenných inštancie sú jedinečné pre každý objekt (každý objekt má samostatnú kópiu) a hodnoty v nich uložené predstavujú stav daného objektu. Priestor pre premennú inštancie je vyhradený v haldy, keď je tento objekt pridelený v halde. Preto sú premenné inštancie uchovávané v pamäti, pokiaľ je objekt aktívny. Napríklad farba jedného automobilu je nezávislá od farby iného automobilu. Takže farba automobilu môže byť uložená v premennej inštancie. V praxi sú premenné inštancie deklarované vo vnútri tried a mimo metód. Premenné inštancie sa zvyčajne deklarujú ako súkromné, takže k nim možno získať prístup iba v triede, v ktorej je deklarovaná.
Čo je lokálna premenná?
Lokálne premenné sú premenné s lokálnym rozsahom a sú deklarované v rámci špecifického kódového bloku. Lokálne premenné môžu byť videné ako premenné, ktoré sa používajú v metóde na uloženie dočasného stavu. Rozsah lokálnej premennej sa určuje pomocou umiestnenia, ktoré je premenná deklarovaná, a na tento účel sa nepoužívajú špeciálne kľúčové slová. Typicky je prístup k lokálnej premennej obmedzený v kódovom bloku, ktorý je deklarovaný (t. J. Medzi otváracou a zatváracou zátvorkou tohto kódového bloku). Lokálne premenné sa zvyčajne ukladajú do zásobníka hovorov. To by umožnilo rekurzívne volania funkcií na uchovávanie vlastných kópií lokálnych premenných, ktoré sa majú uložiť do samostatných pamäťových adresných priestorov. Po dokončení vykonávania metódy sa informácie o tejto metóde vysunú zo zásobníka hovorov a zničia tiež lokálne premenné, ktoré boli uložené..
Aký je rozdiel medzi premennou inštancie a lokálnou premennou?
Premenné inštancie sú deklarované v rámci tried mimo metód a ukladajú stav objektu, zatiaľ čo lokálne premenné sú deklarované v kódových blokoch a používajú sa na ukladanie stavu metódy. Premenná inštancie je aktívna, pokiaľ je objekt, ktorý obsahuje túto premennú, aktívny, zatiaľ čo lokálna premenná je aktívna počas vykonávania tohto bloku metódy / kódu. K premennej inštancie (ktorá je vyhlásená za verejnú) je možné pristupovať v rámci triedy, zatiaľ čo k lokálnej premennej je možné pristupovať iba v rámci blokovania kódu, ktorý je deklarovaný. Použitie premenných inštancie je obmedzené iba na objektovo orientované programovanie, zatiaľ čo lokálne premenné takéto obmedzenie nemajú.