Klíčový rozdíl – statické versus konečné v Javě
Každý programovací jazyk má specifickou syntaxi. Programátor by se měl při psaní programů řídit těmito syntaxemi. Klíčová slova programovacích jazyků mají specifický význam podle úloh. Jsou poskytovány programovacím jazykem a nelze je použít pro uživatelem definované proměnné, metody, třídy atd. Statické a konečné jsou dvě klíčová slova v Javě. Tento článek pojednává o rozdílu mezi statickým a konečným v Javě. Klíčový rozdíl mezi statickým a konečným v Javě je ten, že statický se používá k definování člena třídy, který lze použít nezávisle na jakémkoli objektu třídy, zatímco final se používá k deklaraci konstantní proměnné nebo metody, kterou nelze přepsat, nebo třídy, která nelze zdědit.
Co je v Javě statické?
Třída se skládá z datových členů (atributů) a metod. Aby bylo možné volat metody, měl by existovat objekt této konkrétní třídy. Když je metoda deklarována jako statická, není nutné vytvářet objekt pro volání této metody. Metodu lze volat pomocí názvu třídy. Viz níže uvedený program.
Obrázek 01: Program Java se statickými proměnnými a statickou metodou
Podle výše uvedeného programu obsahuje třída A číselnou proměnnou a metodu zobrazení. Oba jsou statickými členy. Proto není nutné vytvářet objekt pro přístup k proměnné čísla a metodě zobrazení. Programátor může přímo napsat název třídy pro tisk čísla a pro vyvolání zobrazení metody. Není tedy potřeba vytvářet instanci objektu. Pokud jsou číselná proměnná a metoda zobrazení nestatické, měl by existovat objekt typu A.
Obrázek 02: Použití statického bloku
Výše uvedený program obsahuje statický blok a hlavní metodu. Statický blok je volán při načtení třídy. Proto se příkaz ve statickém bloku provede před příkazem v hlavním bloku. Pokud existuje mnoho statických bloků, provedou se postupně.
Co je v Javě finální?
V programu mohou být proměnné různých typů. Pokud existuje proměnná jako int x=1; později v programu lze hodnotu proměnné změnit na jinou hodnotu. Proměnnou, která je deklarována jako konečná a inicializovaná hodnotou, nelze později v programu změnit.
Obrázek 03: Program s konečnou proměnnou a dědičností
Podle výše uvedeného programu je x konečná proměnná. Je jí přiřazena hodnota 5. Nelze ji změnit jinou hodnotou, protože je deklarována jako konečná. Java podporuje objektově orientované programování (OOP). Jedním z pilířů OOP je polymorfismus. Jeden typ polymorfismu je převažující. Třída A má metodu zobrazení. Třída B rozšiřuje třídu A a má vlastní metodu zobrazení. Při vytváření objektu typu B a volání metody zobrazení vypíše jako výstup „B“. Metoda zobrazení třídy A je přepsána metodou zobrazení třídy B.
Pokud se programátor čemu má vyhnout přepsání metody, může pro tuto metodu použít klíčové slovo final. Pokud je metoda zobrazení ve třídě A konečná, metoda zobrazení ve třídě B zobrazí chybu, protože tuto metodu nelze přepsat.
Obrázek 04: poslední klíčové slovo v metodě
Dalším pilířem OOP je dědičnost. Pomáhá znovu použít již existující kód. Nová třída se může rozšířit z existující třídy a používat datové členy a metody existující třídy. Pokud je nutné zastavit dědění třídy, programátor může použít klíčové slovo ‚final‘. Viz níže uvedený program.
Obrázek 05: poslední klíčové slovo ve třídě
Podle výše uvedeného programu je třída A prohlášena za konečnou. Když třída B rozšiřuje A, dává chybu, protože třída A je deklarována jako konečná. Nemůže být zděděn jinými třídami.
Jaká je podobnost mezi statickým a konečným v Javě?
Statické i konečné jsou klíčová slova v Javě
Jaký je rozdíl mezi statickým a konečným v Javě?
statické vs. finále v Javě |
|
Statické klíčové slovo označuje, že členská proměnná nebo metoda může být přístupná bez nutnosti vytvoření instance třídy, do které patří. | Poslední klíčové slovo označuje entitu, kterou lze přiřadit pouze jednou. |
Proměnné | |
Statické proměnné lze znovu inicializovat. | Konečné proměnné nelze znovu inicializovat. |
Metody | |
Lze volat jinými statickými metodami a přistupovat pouze ke statickým členům třídy. | Konečné metody nelze přepsat. |
Class | |
Statický objekt třídy nelze vytvořit. Obsahuje pouze statické členy. | Poslední třídu nemohou zdědit jiné třídy. |
Blokovat | |
Statické klíčové slovo lze použít v bloku. | Konečné klíčové slovo se nepoužívá s blokem. |
Shrnutí – statické versus konečné v Javě
Tento článek pojednával o dvou klíčových slovech v Javě, jako je statické a konečné. Rozdíl mezi static a final v Javě je ten, že static se používá k definování člena třídy, který lze použít nezávisle na jakémkoli objektu třídy, zatímco final se používá k deklaraci konstantní proměnné nebo metody, kterou nelze přepsat, nebo třídy, kterou nelze být zděděn.