Rozdiel Medzi Premennou Inštancie A Lokálnou Premennou

Rozdiel Medzi Premennou Inštancie A Lokálnou Premennou
Rozdiel Medzi Premennou Inštancie A Lokálnou Premennou

Video: Rozdiel Medzi Premennou Inštancie A Lokálnou Premennou

Video: Rozdiel Medzi Premennou Inštancie A Lokálnou Premennou
Video: PEP 3333 -- Python Web Server Gateway Interface v1.0.1 2024, Marec
Anonim

Premenná inštancie vs 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 iba na objektovo orientované programovacie jazyky. Je to premenná, ktorú je možné posúdiť iba v rámci konkrétneho bloku kódu (napr. Funkcie, bloku slučky atď.), V ktorom je definovaný. Z tohto dôvodu sa hovorí, že lokálne premenné majú lokálny rozsah.

Čo je to premenná inštancie?

Premenné inštancie sa používajú v objektovo orientovanom programovaní na ukladanie stavu každého objektu v triede. Sú tiež známe ako členské premenné alebo poľné premenné. Premenné inštancie sú deklarované bez použitia kľúčového slova static v Jave. Hodnoty uložené v premenných inštancie sú pre každý objekt jedinečné (každý objekt má samostatnú kópiu) a hodnoty v nich uložené predstavujú stav daného objektu. Miesto pre premennú inštancie je alokované v halde, keď je tento objekt alokovaný v halde. Preto sa inštančné premenné uchovávajú v pamäti, pokiaľ je objekt aktívny. Napríklad farba jedného automobilu je nezávislá od farby iného automobilu. Takže farbu objektu v automobile je možné uložiť do inštančnej premennej. V praxi sa inštančné premenné deklarujú vo vnútri tried a mimo metód. Zvyčajnepremenné inštancie sú deklarované ako súkromné, aby k nim bolo možné pristupovať iba v rámci triedy, v ktorej je deklarovaná.

Čo je to lokálna premenná?

Lokálne premenné sú premenné s miestnym rozsahom a sú deklarované v rámci konkrétneho bloku kódu. Lokálne premenné možno považovať za premenné, ktoré sa používajú na uloženie dočasného stavu metódou. Rozsah lokálnej premennej sa určuje na základe umiestnenia, v ktorom je premenná deklarovaná, a na tento účel sa nepoužívajú špeciálne kľúčové slová. Prístup k lokálnej premennej je zvyčajne obmedzený v rámci bloku kódu, ktorý je deklarovaný (tj. Medzi otváracou a záverečnou zátvorkou daného bloku kódu). Lokálne premenné sú zvyčajne uložené v zásobníku hovorov. To by umožnilo rekurzívnym volaním funkcií udržiavať svoje vlastné kópie lokálnych premenných, ktoré sa majú ukladať v samostatných adresných priestoroch pamäte. Keď metóda dokončí svoje vykonávanie, informácie o tejto metóde sa zobrazia v zásobníku hovorov a zničia sa aj miestne premenné, ktoré boli uložené.

Aký je rozdiel medzi inštančnou premennou 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 rámci blokov kódu a používajú sa na ukladanie stavu metódy. Premenná inštancie je aktívna, pokiaľ je aktívny objekt, ktorý obsahuje túto premennú, zatiaľ čo lokálna premenná je aktívna počas vykonávania daného 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 bloku kódu, ktorý je deklarovaný. Použitie inštančných premenných je obmedzené iba na objektovo orientované programovanie, zatiaľ čo lokálne premenné také obmedzenie nemajú.

Odporúčaná: