V túto chvíľu dúfam, že ste sa stali oboznámenýmis kľúčovými slovami ako statické a toto v jazyku Java. V programovacom jazyku Java je slovo „final“ kľúčové slovo, ktoré sa používa na rôzne účely, a tu je uvedený zoznam všetkých kontextov, v ktorých používame final:
- Konečné premenné sa nedajú skôr meniť, nemôžu sa znova inicializovať.
- Konečné metódy nemôžu byť potlačené.
- Záverečné triedy nemôžu byť zdedené.
Teraz tomu všetkému rozumieme a použijeme nasledujúce príklady pre každý kontext:
relácie
1. Program pre konečnú premennú
public class Circle{ public static void main(String args[]){ final double PI = 3.14; final double radius = 3.50; System.out.println("Area of Circle is: "+(PI*Math.pow(radius,2))); radius = 3.75; System.out.println("Area of Circle is: "+(PI*Math.pow(radius,2))); } }
2. Program pre konečnú metódu
public class Figure { final public double calculateArea(double radius){ return Math.pow(radius,2); } } class Circle extends Figure{ public double calculateArea(double radius){ System.out.println("Overriding Not Allowed"); /* calculateArea() can not be overridden */ } } class Main{ public static void main(String args[]){ Circle circle = new Circle(); circle.calculateArea(1.23); } }
3. Program pre záverečnú triedu
final class Circle{ final double PI = 3.14; double calculateArea(double radius){ return (PI*Math.pow(radius,2)); } } class Cylinder extends Circle{ double height = 10.0; double calculateArea(double radius){ return 2*((PI*Math.pow(radius,2))+(PI*radius*height)); } } class Main{ public static void main(String args[]){ Cylinder cylinder = new Cylinder(); cylinder.calculateArea(3.11); } }
vysvetlenie
Ak sú premenné deklarované ako konečné, použijú sa konečnékľúčové slovo, môže byť inicializované iba raz a spravidla je definované počas deklarácie. Pokiaľ nie je inicializovaná počas deklarovania, musí sa v konštruktoroch definovať tzv. Finálna prázdna premenná, inak dôjde k chybe pri kompilácii.
Akonáhle je definovaný, môže byť znovu inicializovaný. Ak bude inicializovaný, dôjde k chybe kompilácie. Z výstupu prvého programu sa dá ľahko rozoznať.
Ak sú metódy deklarované ako konečné, použijú sa konečnékľúčové slovo v triede, môže byť preťažené, ale nie je možné ho prepísať. Vo vyššie uvedenom príklade sme definovali konečný výpočetArea () v triede Obrázok, ktorý sa nedal zdediť a prepísať v triede Kruh, pretože poskytuje chybu kompilácie.
Deklarovanie metód ako konečných je rovnocenné ssúkromná metóda, ale pre premennú to nie je pravda a konečná premenná nie je vôbec ekvivalentná konštantnej premennej, pretože pri deklarovaní poľa ako konečného sa môže stav objektu poľa zmeniť, tj premeniť, aby sa obmedzilo modifikácií, musí sa urobiť nemenný, ale ak je pole deklarované ako konštantné, nie je možné ho zmeniť.
Aby sa zabránilo dedeniu triedy,príslušná trieda je vyhlásená za konečnú. Tu, v treťom programe, sme sa pokúsili zdediť poslednú triedu, ale vyskytla sa chyba pri kompilácii, ktorá hovorí: „nemôžeme zdediť z posledného kruhu“, možno pozorovať pri snímaní zo záberu obrazovky.
Takže tu je finále dôkladne prediskutované a myslím si, že vám pomôže veľa pochopiť finále v Jave a všetkých jeho použitiach.
Komentáre