The končna metoda v Javi se uporablja kot a modifikator nedostopa velja samo za a spremenljivka , a metoda , ali a razred. Navajen je omejiti uporabnika v Javi .
Naslednje so različne kontekste kjer se uporablja končnica:
- Spremenljivka
- Metoda
- Razred
Značilnosti končne ključne besede v Javi:
V Javi se ključna beseda final uporablja za označevanje, da spremenljivke, metode ali razreda ni mogoče spremeniti ali razširiti. Tukaj je nekaj njegovih značilnosti:
- Končne spremenljivke: Ko je spremenljivka deklarirana kot končna, njene vrednosti po inicializaciji ni več mogoče spremeniti. To je uporabno za deklariranje konstant ali drugih vrednosti, ki jih ne bi smeli spreminjati.
- Končne metode : Ko je metoda deklarirana kot končna, je ne more preglasiti podrazred. To je uporabno za metode, ki so del javnega API-ja razreda in jih podrazredi ne smejo spreminjati.
- Zaključni razredi: Ko je razred razglašen za končnega, ga ni mogoče razširiti s podrazredom. To je uporabno za razrede, ki naj bi se uporabljali takšni, kot so, in jih ne bi smeli spreminjati ali razširiti.
- Inicializacija: Končne spremenljivke je treba inicializirati v času deklaracije ali v konstruktorju razreda. To zagotavlja, da je vrednost spremenljivke nastavljena in je ni mogoče spremeniti.
- Izvedba: Uporaba finala lahko včasih izboljša zmogljivost, saj lahko prevajalnik učinkoviteje optimizira kodo, ko ve, da spremenljivke ali metode ni mogoče spremeniti.
- Varnost: Final lahko pomaga izboljšati varnost tako, da zlonamerni kodi prepreči spreminjanje občutljivih podatkov ali vedenja.
Na splošno je končna ključna beseda uporabno orodje za izboljšanje kakovosti kode in zagotavljanje, da določenih vidikov programa ni mogoče spremeniti ali razširiti. Z razglasitvijo spremenljivk, metod in razredov kot končnih lahko razvijalci napišejo bolj varno, robustno in vzdržljivo kodo.
Končna spremenljivka Java
Ko je spremenljivka deklarirana z končna ključna beseda , svoje vrednosti ni mogoče spremeniti , v bistvu, a konstantna . To tudi pomeni, da si mora inicializirati končno spremenljivko .
Če je končna spremenljivka a referenca , to pomeni, da spremenljivka ne more biti ponovno vezan na referenco drugega predmeta, vendar je mogoče spremeniti notranje stanje predmeta, na katerega kaže ta referenčna spremenljivka, tj. lahko dodate ali odstranite elemente iz končna matrika ali končna zbirka.
Dobra praksa je, da končne spremenljivke predstavljate z velikimi črkami, za ločevanje besed pa uporabite podčrtaj.
primer:
Java public class ConstantExample { public static void main(String[] args) { // Define a constant variable PI final double PI = 3.14159; // Print the value of PI System.out.println('Value of PI: ' + PI); } }>
Izhod
Value of PI: 3.14159>
Izhod:
Value of PI: 3.14159>
Različni načini uporabe končne spremenljivke
Oglejmo si različne metode, s katerimi lahko uporabimo končno spremenljivko v Javi.
1. končna spremenljivka
primer:
// Final variable final int THRESHOLD = 5;>
2. Prazna končna spremenljivka
primer:
// Blank final variable final int THRESHOLD;>
3. Statična končna spremenljivka
primer:
// Final static variable PI static final double PI = 3.141592653589793;>
4. Statična prazna končna spremenljivka
primer:
// Blank final static variable static final double PI;>
Inicializacija končne spremenljivke
Inicializirati moramo končno spremenljivko, sicer bo prevajalnik vrgel napako med prevajanjem. Končno spremenljivko je mogoče inicializirati samo enkrat, bodisi prek inicializator ali izjavo o dodelitvi. Končno spremenljivko lahko inicializirate na tri načine:
kateri meseci so q1
- Končno spremenljivko lahko inicializirate, ko je deklarirana. Ta pristop je najpogostejši. Končna spremenljivka se imenuje a prazna končna spremenljivka če je ne inicializiran med deklaracijo. Spodaj sta dva načina inicializacije prazne končne spremenljivke.
- Prazno končno spremenljivko je mogoče inicializirati znotraj blok inicializatorja primerka ali konstruktorja. Če imate v svojem razredu več kot en konstruktor, ga morate inicializirati v vseh, sicer bo med prevajanjem vržena napaka.
- Prazno končno statično spremenljivko je mogoče inicializirati znotraj a statični blok .
Oglejmo si ta dva različna načina inicializacije končne spremenljivke
primer:
Java // Java Program to demonstrate Different // Ways of Initializing a final Variable // Main class class GFG { // a final variable // direct initialize final int THRESHOLD = 5; // a blank final variable final int CAPACITY; // another blank final variable final int MINIMUM; // a final static variable PI // direct initialize static final double PI = 3.141592653589793; // a blank final static variable static final double EULERCONSTANT; // instance initializer block for // initializing CAPACITY { CAPACITY = 25; } // static initializer block for // initializing EULERCONSTANT static{ EULERCONSTANT = 2.3; } // constructor for initializing MINIMUM // Note that if there are more than one // constructor, you must initialize MINIMUM // in them also public GFG() { MINIMUM = -1; } }>
V zgornji kodi ni bilo glavne metode, saj je bila zgolj za ponazoritev, da bi bolje razumeli in naredili sklepe:
Opazovanje 1: Kdaj uporabiti končno spremenljivko?
Edina razlika med običajno spremenljivko in končno spremenljivko je v tem, da lahko normalni spremenljivki znova dodelimo vrednost, ne moremo pa spremeniti vrednosti končne spremenljivke, ko je enkrat dodeljena. Zato moramo končne spremenljivke uporabljati samo za vrednosti, za katere želimo, da ostanejo nespremenjene skozi celotno izvajanje programa.
Opazovanje 2: Referenčna končna spremenljivka.
Ko je končna spremenljivka sklic na objekt, se ta končna spremenljivka imenuje referenčna končna spremenljivka . Na primer finale StringBuffer spremenljivka je spodaj definirana takole:
final StringBuffer sb;>
Kot vsi vemo, končne spremenljivke ni mogoče ponovno dodeliti. Toda v primeru referenčne končne spremenljivke je mogoče spremeniti notranje stanje predmeta, na katerega kaže ta referenčna spremenljivka. Upoštevajte, da to ni ponovna dodelitev.
Ta lastnost dokončno je poklican neprehodnost . Da bi razumeli, kaj je mišljeno z notranjim stanjem predmeta, kot je prikazano v spodnjem primeru, kot sledi:
Primer 1:
Java // Java Program to demonstrate // Reference of Final Variable // Main class class GFG { // Main driver method public static void main(String[] args) { // Creating an object of StringBuilder class // Final reference variable final StringBuilder sb = new StringBuilder('Geeks'); // Printing the element in StringBuilder object System.out.println(sb); // changing internal state of object reference by // final reference variable sb sb.append('ForGeeks'); // Again printing the element in StringBuilder // object after appending above element in it System.out.println(sb); } }>
Izhod
Geeks GeeksForGeeks>
The neprehodnost Lastnost velja tudi za nize, ker nizi so objekti v Javi. Nizi z končna ključna beseda imenujejo tudi končni nizi .
Opomba: Kot je razloženo zgoraj, končne spremenljivke ni mogoče znova dodeliti, saj bo to povzročilo napako med prevajanjem.
Primer 2:
Java // Java Program to Demonstrate Re-assigning // Final Variable will throw Compile-time Error // Main class class GFG { // Declaring and customly initializing // static final variable static final int CAPACITY = 4; // Main driver method public static void main(String args[]) { // Re-assigning final variable // will throw compile-time error CAPACITY = 5; } }>
Izhod:
Ne pozabite: Ko je končna spremenljivka ustvarjena znotraj metode/konstruktorja/bloka, se imenuje lokalna končna spremenljivka in se mora enkrat inicializirati tam, kjer je ustvarjena. Glejte spodnji program za lokalno končno spremenljivko.
primer:
Java // Java program to demonstrate // local final variable // Main class class GFG { // Main driver method public static void main(String args[]) { // Declaring local final variable final int i; // Now initializing it with integer value i = 20; // Printing the value on console System.out.println(i); } }>
Izhod
20>
Zapomnite si te ključne točke, kot jih zaznate, preden se premaknete naprej, kot je navedeno spodaj:
- Upoštevajte razliko med C++ konst spremenljivke in Java dokončno spremenljivke. spremenljivke const v C++ morajo biti dodeljena vrednost, ko je deklarirana . Za končne spremenljivke v Javi je ni potrebno kot vidimo v zgornjih primerih. Končni spremenljivki je mogoče dodeliti vrednost pozneje, vendar le enkrat.
- dokončno z foreach zanka : končno z for-vsaka izjava je pravna izjava.
primer:
Java // Java Program to demonstrate Final // with for-each Statement // Main class class GFG { // Main driver method public static void main(String[] args) { // Declaring and initializing // custom integer array int arr[] = { 1, 2, 3 }; // final with for-each statement // legal statement for (final int i : arr) System.out.print(i + ' '); } }>
Izhod
1 2 3>
Razlaga izhoda: Odkar je jaz spremenljivka izstopi iz obsega z vsako ponovitvijo zanke, se pri vsaki ponovitvi znova deklarira, kar omogoča uporabo istega žetona (i) za predstavitev več spremenljivk.
primer:
Java public class Example { public static void main(String[] args) { final int VALUE = 10; // declaring a final variable System.out.println('The value is: ' + VALUE); // VALUE = 20; // uncommenting this line will cause a compiler error // System.out.println('The new value is: ' + VALUE); final String MESSAGE = 'Hello, world!'; // declaring a final variable System.out.println(MESSAGE); MyClass myObj = new MyClass(); myObj.printMessage(); myObj.printFinalMessage(); // MyOtherClass extends MyClass {} // uncommenting this line will cause a compiler error } } class MyClass { final String message = 'Hello!'; // declaring a final instance variable void printMessage() { System.out.println(message); } void printFinalMessage() { final String finalMessage = 'Hello, final!'; System.out.println(finalMessage); } } final class MyOtherClass { // declaring a final class // ... }>
Izhod
The value is: 10 Hello, world! Hello! Hello, final!>
Zaključni razredi Java
Ko je razred deklariran z dokončno v Javi se imenuje a zaključni razred . Zaključni razred ne more biti razširjeno (podedovano) .
Obstajata dve uporabi končnega razreda:
Uporaba 1: Ena je zagotovo preprečiti dedovanje , saj zaključnega razreda ni mogoče podaljšati. Na primer vse Ovojni razredi kot Celo število , Lebdi , itd. so zaključni razredi. Ne moremo jih podaljšati.
final class A { // methods and fields } // The following class is illegal class B extends A { // COMPILE-ERROR! Can't subclass A }>
Uporaba 2: Druga uporaba končnega z razredi je za ustvarite nespremenljiv razred kot vnaprej določeno Vrvica razred. Razreda ni mogoče narediti nespremenljivega, ne da bi bil končen.
Končna metoda Java
Ko je metoda deklarirana z dokončno ključna beseda, se imenuje a končna metoda v Javi. Končna metoda ne more biti preglasiti .
The Objekt razred naredi to - številne njegove metode so končne. Metode moramo deklarirati s končno ključno besedo, za katero moramo slediti isti izvedbi v vseh izpeljanih razredih.
Ilustracija: Končna ključna beseda z metodo
class A { final void m1() { System.out.println('This is a final method.'); } } class B extends A { void m1() { // Compile-error! We can not override System.out.println('Illegal!'); } }>
Prednosti končne ključne besede v Javi:
Končna ključna beseda v Javi ponuja več prednosti, vključno z:
- Zagotavljanje nespremenljivosti: Ko je spremenljivka ali sklic označena kot končna, njene vrednosti ni več mogoče spremeniti, ko je dodeljena. To pomaga zagotoviti, da so podatki nespremenljivi in jih ni mogoče pomotoma ali zlonamerno spreminjati.
- Izboljšanje učinkovitosti : uporaba finala lahko včasih pomaga izboljšati zmogljivost, saj lahko Java Virtual Machine (JVM) učinkoviteje optimizira kodo, če ve, da določenih vrednosti ali referenc ni mogoče spremeniti.
- Za lažje razumevanje kode: Z razglasitvijo spremenljivk, metod ali razredov kot končnih lahko razvijalci olajšajo razumevanje in sklepanje svoje kode. Ko je vrednost ali sklic označena kot končna, je jasno, da se ne bo spremenila, kar lahko poenostavi analizo kode in odpravljanje napak.
- Ponovna uporaba promocijske kode: Z razglasitvijo metod kot končnih lahko razvijalci preprečijo, da bi jih podrazredi preglasili. To lahko pomaga spodbujati ponovno uporabo kode in zmanjša podvajanje, saj morajo podrazredi uporabljati izvedbo metode nadrejenega razreda.
- Povečanje varnosti: Uporaba final lahko pomaga povečati varnost tako, da zlonamerni kodi prepreči spreminjanje občutljivih podatkov ali vedenja.
Na splošno je končna ključna beseda uporabno orodje za izboljšanje kakovosti kode in zagotavljanje, da določenih vidikov programa ni mogoče spreminjati. Z razglasitvijo spremenljivk, metod in razredov kot končnih lahko razvijalci napišejo bolj varno, robustno in vzdržljivo kodo.
Za več primerov in obnašanja končnih metod in končnih razredov , prosim poglej Uporaba finala z dedovanjem. Oglejte si povzetek v Javi članek za razlike med dokončno in povzetek .
Povezano vprašanje za intervju (pomembno): Razlika med finalom, finally in finalize v Javi
Zaključek
Končna ključna beseda v Javi je metoda za ustvarjanje uporabniško omejenih spremenljivk, metod ali razredov. V tej vadnici podrobno obravnavamo končno ključno besedo Jave in razumemo vse njene kontekste.
Konteksti so razloženi s programi Java v primerih, kar zagotavlja popolno razumevanje teme.
npm počisti predpomnilnik
Končna ključna beseda Java – pogosta vprašanja
Kaj je končna metoda v Javi?
Končna metoda v Javi je metoda, deklarirana z končna ključna beseda , kar pomeni, da njegove izvedbe ne morejo preglasiti podrazredi.
Ali je končna metoda podedovana?
Ne, v Javi končne metode ne more podedovati podrazred. To pomeni, da podrazred ne more preglasiti končne metode .
Kaj je končna ključna beseda in statična ključna beseda v Javi?
Končna ključna beseda: Uporablja se za razglasitev spremenljivk, metod ali razredov kot nespremenljivih.
Statična ključna beseda: uporablja se za deklariranje članov razreda (spremenljivk in metod), ki pripadajo samemu razredu, ne posameznim objektom.
Ali lahko v Javi napišemo končno ključno besedo z nizom?
Da, lahko deklarirate spremenljivko s končno ključno besedo in ji dodelite nizovni literal.