Proměnná je název přidělený oblasti úložiště, kterou lze ovládat programem. Typ proměnné určuje velikost a konfiguraci paměti proměnné.
Rozsah hodnoty, kterou lze do proměnné vložit, se vypočítá před vložením hodnoty do ní, protože před vložením hodnoty do proměnné je třeba rozhodnout o typu proměnné.
Rozsah proměnných
Rozsah proměnné je doslova životnost proměnné. Je to blok kódu, ve kterém je proměnná platná nebo stále živá.
function poo() { var a; }
V rámci funkce 'a' deklarujeme proměnnou 'poo.' Rozsah této proměnné zůstává v rámci této funkce a nelze jej použít mimo tuto funkci.
Existují tři místa, kde můžeme proměnnou využít v našem programování.
- Ve funkci nebo uvnitř bloku se pak říká, že jde o lokální proměnné
- Pokud se používá mimo všechny funkce, pak se nazývá globální proměnné
- Pokud se používá v definici parametrů funkce, pak se nazývá formální parametry.
Hlavní rozdíl
- Proměnná, která je deklarována v rámci funkce, se nazývá lokální proměnná, zatímco pokud je proměnná deklarována mimo funkci, je známá jako globální proměnná.
- Na druhou stranu, když funkce začala vykonávat a je ztracena, když funkce skončí, globální proměnné se vytvoří při zahájení provádění a ztratí se, když program skončí. Vytvoří se lokální proměnné.
- Lokální proměnná nezahrnuje sdílení dat, zatímco sdílení dat je dáno globální proměnnou.
- Lokální proměnné jsou uloženy v zásobníku, zatímco globální proměnná je uložena programátorem na pevném místě.
- Pro lokální proměnné jsou potřebné parametry, zatímco globální proměnná není třeba přenášet.
Parametr | Místní | Globální |
---|---|---|
Rozsah | Uvnitř funkce. | Rozsah je mimo funkci. |
Hodnota | Pokud hodnota není inicializována, uvede hodnotu nesmyslu. | Pokud hodnota není inicializována, bude ve výchozím nastavení nula. |
Život | Vytvoří se, když se funkce spustí, a ztratí se, když funkce skončí. | Vytvoří se před zahájením globálního provádění programu a ztratí se, když program skončí. |
Sdílení dat | Nemožné. | Možný. |
Parametry | Požadované. | Není požadováno. |
Přístup: | Lokální proměnné | V rámci programu můžeme přistupovat ke globálním proměnným. |
Paměťové úložiště | Na zásobníku. | Na pevném místě určeném počítačem. |
Místní proměnná
Lokální proměnná je specifikována v programovacím bloku nebo podprogramech jako forma deklarované proměnné. Lokální proměnná přetrvává před provedením bloku funkce. Poté se automaticky ztratí.
Příklad lokální proměnné
public int sum(){ int x =4; int y=5; return x+y; }
Zde jsou 'x' a 'y' lokální proměnné
Globální proměnná
Proměnná, která je uvedena mimo funkci nebo blok kódu, se nazývá globální proměnná. Má globální dosah, což znamená, že si zachovává svůj význam po celou dobu životnosti programu. Proto k ní může v rámci programu přistupovat jakákoli funkce specifikovaná v programu, pokud není zastíněna.
Příklad globální proměnné
int x =4; int y=5; public int add(){ return x+y; }
Zde jsou „x“ a „y“ globální proměnné.
Výhody použití globálních proměnných
- Ke globální proměnné lze přistupovat ze všech funkcí nebo modulů v programu.
- Potřebujeme pouze deklarovat jednorázovou globální proměnnou mimo moduly.
- Používá se, když uživatel potřebuje znovu a znovu přistupovat ke stejným datům v celém programu.
Nevýhody použití globálních proměnných
- Tolik proměnných je deklarováno jako globálních, pak zůstávají v paměti, dokud se nedokončí provádění programu. To může vyvolat problém nedostatku paměti.
- Jakákoli funkce může změnit data. Jakýkoli příkaz zapsaný v programu změní hodnotu globální proměnné. V multitaskingových prostředích to může nabídnout nepředvídatelné výsledky.
- Musíme upravit všechny moduly, kde jsou pojmenovány, pokud jsou globální proměnné přerušeny kvůli refaktorování kódu.
Výhody použití lokálních proměnných
- Hodnoty proměnných zůstávají během úlohy nezměněny, to je základní význam lokální proměnné.
- Pokud je jedna proměnná, která běží souběžně, změněna mnoha úkoly, může být výsledek nepředvídatelný. Vyřeší to však deklarace jako lokální proměnná.
- Proměnným v různých funkcích můžeme přiřadit stejný název.
- Při provádění funkce se uvolňuje paměť proměnné.
Nevýhody lokálních proměnných
- Metoda ladění lokální proměnné je velmi složitá.
- Populární data je třeba pravidelně přenášet, protože sdílení dat mezi moduly není možné.
- Mají velmi malé spektrum.
Co je užitečnější?
Neméně zásadní lokální a globální proměnná při psaní programu v jakémkoli jazyce. Velké množství globální proměnné však může zabírat obrovskou paměť. Nežádoucí přechod ke globálním proměnným se začíná obtížně definovat. Je také rozumné vyhnout se oznamování globálních proměnných, které jsou nežádoucí.