Sidste søgeord i Java | Variabel, Metode, Klasse med eksempler
Det endelige søgeord i java bruges til at skabe en konstant variabel, forhindre metodeoverbelastning og forhindre klassearv osv. Java Final nøgleord begrænser til brugeren, og det kan kun gælde for:–
- Variabler
- Metoder
- og klasse
Java Final Variable
At definere en variabel som en Final gør den konstant, hvilket betyder, at du kan ændre (modificeret) værdien af den. Du skal initialisere De endelige variabler .
Lad os se eksemplet på den endelige variabel i Java.
Der er et variabelt mærke der har brugt det endelige søgeord. Vi vil prøve at ændre værdien af det. I henhold til begrebet endelig bør værdien ikke ændres. Når en endelig Java-variabelværdi er tildelt, kan den ikke ændres.
class TestCode { //final variable final int mark = 90; void run() { mark = 90; } public static void main(String args[]) { TestCode obj = new TestCode(); obj.run(); } }
Output: Fejl:(7, 9) java:kan ikke tildele en værdi til det endelige variabelmærke
I dag er IDE rig på funktioner, hvor du får direkte beskeder om enhver fejl og problem. Se nedenstående skærmbillede viste en fejl under programmering i IntelliJ IDEA.
Java endelige metode
Den største fordel ved den endelige metode er, at den ikke kan tilsidesættes.
Skal læse om, hvad der er:-
- Arv
- Tilsidesættelse af metode
Lad os se eksemplet på, hvordan man laver den endelige metode og forsøger at tilsidesætte en endelig metode i java.
class ObjectShapes { final void draw(){ System.out.println("Object Shape"); } } class Rectangle extends ObjectShapes{ @Override void draw() { System.out.println("Draw Rectangle"); } } class Shape{ public static void main(String args[]){ // object creating Rectangle rect1=new Rectangle(); rect1.draw(); } }
Output: Fejl:(10, 10) java:draw() i Rectangle kan ikke tilsidesætte draw() i ObjectShapes
IDE selv viser en fejl, se nedenstående skærmbillede af kode.
Java sidste klasse
For at forhindre, at din klasse udvides, skal du bruge det sidste nøgleord med klassen. Se nedenstående eksempel på, hvordan du gør det. Hvor ObjectShapes-klassen er en sidste klasse og forsøger at udvide, men den vil vise en fejl.
final class ObjectShapes { void draw(){ System.out.println("Object Shape"); } } class Rectangle extends ObjectShapes{ @Override void draw() { System.out.println("Draw Rectangle"); } } class Shape{ public static void main(String args[]){ // object creating Rectangle rect1=new Rectangle(); rect1.draw(); } }
Output: Fejl:(7, 25) java:kan ikke arve fra endelige ObjectShapes
IDE selv vil vise en fejl, se nedenstående skærmbillede.
Hvad er Javas sidste parameter (argumenter)?
Svar :En parameter (argument) defineret (erklæret) med det endelige nøgleord kaldes en endelig parameter. Værdien af den endelige parameter kan ikke ændres.
final class ObjectShapes { void draw(int w, final int h) { h = h + h; // can't change value w = w + w; // can change value System.out.println("Object W and H " + w + " " + h); } } class Shape { public static void main(String args[]) { // object creating ObjectShapes rect1 = new ObjectShapes(); rect1.draw(2, 3); } }
Output :Fejl:(3, 9) java:endelig parameter h tildeles muligvis ikke
Har findes endelig konstruktøri Java?
Eller endeligt søgeord med konstruktør?
Svar: Ikke det er ikke muligt en endelig Java-konstruktør, fordi konstruktøren
Sp:Kan vi bruge det endelige array i ja va?
Svar: Du kan erklære Java Final Array uden problemer. Den endelige række af elementer kan ændre sig. Hvor Arrays er objekter og objektvariabler (elementer af arrayet) er altid referencer i Java.
Lad os se et enkelt eksempel.
public class HelloTest { public static void main(String[] args) { final int arr[] = {1, 2, 3, 4, 5}; // Note: arr is final arr[2] = 4; //change the value of index 2 } }
Sp:Hvad er en tom eller ikke-initialiseret slutvariabel?
Svar: Hvilke endelige variabler, der ikke initialiseres på tidspunktet for erklæringen, kaldes en tom slutvariabel. Det kan kun initialiseres i konstruktøren.
Eksempel på tom slutvariabel:-
class Employee{ int id; String name; final String PAN_CARD_NUMBER; ... }
Lad os initialisere den tomme endelige variabel.
class TestBank { final int intrestRate;//blank final variable TestBank(){ intrestRate=7; System.out.println(intrestRate); } public static void main(String args[]) { new TestBank(); } }
Sp:Hvad er en statisk blank slutvariabel?
Svar: En statisk endelig blank variabel initialiseres ikke på tidspunktet for erklæringen. Det kan kun initialiseres i statiske blokke.
Eksempel på statisk blank slutvariabel:-
class TestBank { static final int accounts;//static blank final variable static { accounts = 10250; } public static void main(String args[]) { System.out.println(TestBank.accounts); } }
Svært spørgsmål:Nedarves den endelige metode?
Svar: Ja, du kan arve den endelige metode, men du kan ikke tilsidesætte den. Se nedenstående eksempel:-
class ObjectShapes { void draw() { System.out.println("Method "); } } class Shape extends ObjectShapes { public static void main(String args[]) { new ObjectShapes().draw(); } }
Konklusion
Du lærte om finalen nøgleordsmidler for klasser, metoder og variabler i Java. Du må ikke bruge finalen nøgleord ofte i Java-programmering, kan det være en god designløsning.
Kommenter, hvis du er i tvivl om og forslag til denne vejledning.
Bemærk: Dette eksempel (Projekt) er udviklet i IntelliJ IDEA 2018.2.6 (Community Edition)
JRE:11.0.1
JVM:OpenJDK 64-Bit Server VM af JetBrains s.r.o
macOS 10.14.1
Java version 11
Alle Java Final-søgeordseksempler er i Java 11, så det kan ændre sig på anderledes end Java 9 eller 10 eller opgraderede versioner.