Rozdíl mezi konečným a statickým

V matematice a vědě je konstanta termín, který označuje určitou hodnotu, například „π“, což je praktické jméno pro číslo 3.14159. Java má své konstanty. Jedná se o proměnné, které v bodě a) nepatří k žádnému objektu, a sub (b) nemění svou hodnotu, jakmile jsou nastaveny. Statické slovo v deklaraci proměnné ukazuje, že proměnná nepatří k žádnému objektu. Existuje podobné klíčové slovo, které říká, že hodnota proměnné bude nastavena pouze jednou a nezmění se. Toto je klíčové slovo final. Toto klíčové slovo není omezeno na statické proměnné, ale může být použito s proměnnými instance, lokálními proměnnými a dokonce is proměnnými, které jsou metodami parametrů. Deklarací proměnné jako finální ukážete všem, že proměnná během existence bude mít stejnou hodnotu. Ještě důležitější je, že kompilátor detekuje každý pokus o změnu hodnoty takto deklarované proměnné a nahlásí ji jako chybu. Pokud jde o terminologii Java, proměnná, která je deklarována jako statická a konečná, se nazývá konstanta.

Co je Final?

Konečný modifikátor může být použit na několika místech v programovacím jazyce Java. Zde se věnujeme jeho nejběžnějšímu použití. Konečný modifikátor lze použít na deklaraci lokální proměnné, argumentu funkce a nestatických nebo statických členských proměnných. V tomto kontextu se proměnný modifikátor převádí na konstantu. Překladatel překladového jazyka zkontroluje, zda se nějaký kód pokouší hodnotu upravit, a takové pokusy budou označeny jako chyba. Zde je příklad.

konečná hodnota int = 17;

Proměnné statických členů s tímto modifikátorem se používají jako globální konstanty; například v proměnné PI java.lang.Math se uvádí přesně

veřejné statické konečné dvojí PI = 3,14159265358979323846;

Na deklaraci funkce můžeme použít konečný modifikátor. Funkce označená finálem již nemůže být potlačena - to je její konečná implementace. Abstraktní metody nelze prohlásit za konečné - skutečnost, že jsou abstraktní, znamená, že jim chybí implementace; rozhodně to nemůže být jejich konečný stav. Zde je příklad.

veřejné konečné intLife ()

návrat 42;

Na deklaraci třídy můžeme použít konečný modifikátor. Třída, která je označena finále, již nemůže zdědit - to je její konečná implementace. Je jasné, že abstraktní třída nemůže být konečná zároveň. Zde je příklad

veřejná závěrečná třída uzavřena

//…

Jedním z příkladů konečné třídy je třída java.lang.String - je konečná, takže ji nikdo nemohl zdědit a získat tak přístup ke svým proměnným členů.

Co je statické?

Statické proměnné nepatří do konkrétní instance třídy. Statické proměnné patří do samotné třídy av paměti existuje pouze jedno umístění, bez ohledu na počet kopií této třídy, které jsou vytvořeny v paměti. Nestatické proměnné patří do vzorků třídy - každá instance třídy má svou vlastní kopii takových proměnných. Statické proměnné patří do třídy - třída v paměti udržuje hodnoty takových proměnných; všechny ukázkové třídy proto vidí stejný obsah, takže můžeme považovat statické proměnné za sdílené mezi všemi velikostmi tříd. Aktualizací proměnné value bude nová hodnota automaticky viditelná pro všechny instance této třídy. Statický filtr lze použít na jakýkoli prvek legálně deklarovaný v rámci třídy. V případě proměnných členství je důsledkem to, že takové proměnné členů budou uloženy v paměti pouze na jednom místě. Co se stane, pokud se jedná o metodu? Prohlášením metody za statickou je zpráva stejná: příslušná metoda nepatří do tříd tříd, ale do samotné třídy. V důsledku toho statické metody neobdrží skrytý odkaz na objekt, přes který jsou volány při volání; ve statických referenčních metodách to není k dispozici. Vyvolání statických metod napříč objektem je ve skutečnosti stejně matoucí jako přístup k proměnným statických členů odkazem na tento odkaz: v obou případech je lepší jednoduše napsat název třídy, bod a název volající metody.

Rozdíl mezi konečným a statickým

  1. Proměnná

Statický znamená proměnnou, která je společná pro všechny objekty, které vytvoří instanci dané třídy, zatímco final definuje konstantu.

  1. Metoda

Statická je metoda, která je stejná pro každý objekt dané třídy - nazývá se také členem třídy, např. to je hlavní metoda. Konečnou metodu nelze zpracovat v zděděné třídě.

  1. Třída

Finále nelze rozšířit, tj. Neumožňuje podtřídy. Statické se nevztahuje na třídu.

  1. Hodnota

Jednoduše řečeno, konečný znamená, že hodnotu nelze změnit (přepsat). Statická hodnota je nastavena na výchozí hodnotu, ale může být znovu inicializována.

Konečné vs. statické: srovnávací tabulka

Shrnutí závěrečné a statické

  • Statická práce klíče poskytuje přístup, i když neexistuje žádný objekt (instance). Prominentní třídy jsou deklarovány pomocí statického klíčového slova. Pokud nechcete, aby hodnota některých změn později v programu šla, nebo pokud chcete, aby kompilátor zkontroloval a zakázal, můžete tento slib změnit na finální. Pro inicializaci existuje statický blok. Statický blok pro inicializaci je deklarován jako klíčový statický před závorkami. Tento druh bloku se provádí jednou během čtení tříd a obvykle inicializuje statické členy třídy.