Klíčový rozdíl - statické vs. konečné v Javě
Každý programovací jazyk má specifickou syntaxi. Programátor by měl při psaní programů dodržovat tyto syntaxe. Klíčová slova programovacích jazyků mají specifické úkoly podle úkolů. Poskytují je programovací jazyk 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ílech mezi statickým a konečným v Javě. Klíčový rozdíl mezi statickým a finálním v Javě spočívá v tom, ž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.
OBSAH
1. Přehled a klíčový rozdíl
2. Co je statické v Javě
3. Co je konečné v Javě
4. Podobnosti mezi statickým a konečným v Javě
5. Porovnání vedle sebe - statické vs. konečné v Javě v tabulkové formě
6. Shrnutí
Co je statické v Javě?
Třída se skládá z datových členů (atributů) a metod. Aby bylo možné volat metody, měl by existovat objekt dané konkrétní třídy. Když je metoda deklarována jako statická, není nutné vytvořit 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 způsob zobrazení. Oba jsou statické č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, aby vytiskl číslo a vyvolal zobrazení metody. Není tedy nutné vytvořit instanci objektu. Pokud jsou proměnná čísla a metoda zobrazení nestatické, pak by měl existovat objekt typu A.
Obrázek 02: Použití statického bloku
Výše uvedený program obsahuje statický blok a hlavní metodu. Statický blok se volá 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ů, spustí se postupně.
Co je konečné v Javě?
V programu mohou být proměnné různých typů. Pokud existuje proměnná jako int x = 1; později v programu lze tuto hodnotu proměnné změnit na jinou hodnotu. Proměnnou, která je deklarována jako konečná a inicializována 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, protože je deklarována jako konečná. Java podporuje objektově orientované programování (OOP). Jedním pilířem OOP je polymorfismus. Jeden typ polymorfismu převažuje. 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í vytiskne jako výstup „B“. Metoda zobrazení třídy A je přepsána metodou zobrazení třídy B.
Pokud programátor nemá zabránit přepsání metody, může pro tuto metodu použít konečné klíčové slovo. Pokud je metoda zobrazení ve třídě A konečná, způsob zobrazení v B způsobí chybu, protože tuto metodu nelze přepsat.
Obrázek 04: Konečné 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é ukončit dědění třídy, může programátor použít klíčové slovo „final“. Viz níže uvedený program.
Obrázek 05: Konečné 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á. Nelze jej zdědit 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ě?
Rozdílný článek uprostřed před tabulkou
static vs final v Javě |
|
Statické klíčové slovo označuje, že k členské proměnné nebo metodě lze přistupovat bez nutnosti vytvoření instance třídy, do které patří. | Konečné 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. |
Třída | |
Statický objekt třídy nelze vytvořit. Obsahuje pouze statické členy. | Konečnou třídu nelze zdědit jinými třídami. |
Blok | |
Statické klíčové slovo lze použít v bloku. | Konečné klíčové slovo se u bloku nepoužívá. |
Shrnutí - statické vs konečné v Javě
Tento článek pojednával o dvou klíčových slovech v Javě, jako jsou statická a konečná. Rozdíl mezi static a final v Javě spočívá v tom, ž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, která nemůže být zděděn.