Nøgleforskel - statisk vs endelig i Java
Hvert programmeringssprog har en bestemt syntaks. Programmøren skal følge disse syntakser, når han skriver programmer. Nøgleordene til programmeringssprog har specifik betydning i henhold til opgaverne. De leveres af programmeringssproget og kan ikke bruges til brugerdefinerede variabler, metoder, klasser osv. Det statiske og sidste er to nøgleord i Java. Denne artikel diskuterer forskellen mellem statisk og endelig i Java. Hovedforskellen mellem statisk og endelig i Java er, at statisk bruges til at definere det klassemedlem, der kan bruges uafhængigt af ethvert objekt i klassen, mens final bruges til at erklære en konstant variabel eller en metode, der ikke kan tilsidesættes eller en klasse, der kan ikke arves.
INDHOLD
1. Oversigt og nøgleforskel
2. Hvad er statisk i Java
3. Hvad er endeligt i Java
4. Ligheder mellem statisk og endeligt i Java
5. Sammenligning side om side - statisk versus endelig i Java i tabelform
6. Oversigt
Hvad er statisk i Java?
En klasse består af data-medlemmer (attributter) og metoder. For at kalde metoderne, skal der være et objekt fra den specifikke klasse. Når en metode erklæres som statisk, er det ikke nødvendigt at oprette et objekt til at kalde den metode. Metoden kan kaldes ved hjælp af klassens navn. Se nedenstående program.
Figur 01: Java-program med statiske variabler og statisk metode
I henhold til ovenstående program indeholder klasse A nummervariabel og visningsmetode. Begge er statiske medlemmer. Derfor er det ikke nødvendigt at oprette et objekt for at få adgang til nummervariablen og visningsmetoden. Programmøren kan skrive klassens navn direkte for at udskrive nummeret og kalde metodevisningen. Så der er ikke behov for at instantere et objekt. Hvis nummervariablen og visningsmetoden er ikke-statiske, skal der være et objekt af type A.
Figur 02: Brug af statisk blok
Ovenstående program indeholder den statiske blok og hovedmetoden. Den statiske blok kaldes, når klassen er indlæst. Derfor udføres udsagnet i den statiske blok før udsagnet i hovedblokken. Hvis der er mange statiske blokke, udføres de i rækkefølge.
Hvad er endelig i Java?
I programmet kan der være variabler af forskellige typer. Hvis der er en variabel som int x = 1; senere i programmet kan den variable værdi ændres til en anden værdi. En variabel, der erklæres endelig og initialiseres med en værdi, kan ikke ændres senere i programmet.
Figur 03: Program med endelig variabel og arv
I henhold til ovenstående program er x en endelig variabel. Den tildeles en værdi 5. Den kan ikke ændres til en anden værdi, fordi den erklæres som endelig. Java understøtter objektorienteret programmering (OOP). En søjle i OOP er en polymorfisme. En type polymorfisme er overordnet. Klasse A har visningsmetoden. Klasse B udvider klasse A, og den har sin egen visningsmetode. Når du opretter et objekt af type B og kalder, vil displaymetoden udskrive "B" som output. Visningsmetoden i klasse A tilsidesættes af visningsmetoden i klasse B.
Hvis programmøren hvad man skal undgå at tilsidesætte en metode, så kan han bruge det endelige nøgleord til denne metode. Hvis visningsmetoden i klasse A er endelig, viser displaymetoden i B en fejl, fordi den metode ikke kan tilsidesættes.
Figur 04: sidste nøgleord i metoden
En anden søjle i OOP er arv. Det hjælper med at genbruge den allerede eksisterende kode. Den nye klasse kan strække sig fra den eksisterende klasse og bruge data-medlemmerne og metoderne i den eksisterende klasse. Hvis det er nødvendigt at stoppe med at arve en klasse, kan programmøren bruge nøgleordet 'final'. Se nedenstående program.
Figur 05: sidste nøgleord i klassen
I henhold til ovenstående program erklæres klasse A som endelig. Når klasse B udvider A, giver det en fejl, fordi klasse A erklæres som endelig. Det kan ikke arves af andre klasser.
Hvad er ligheden mellem statisk og endelig i Java?
Både statiske og endelige er nøgleord i Java
Hvad er forskellen mellem statisk og endelig i Java?
Diff artikel midt foran bordet
statisk vs endelig i Java |
|
Statisk nøgleord angiver, at en medlemsvariabel eller metode kan tilgås uden at kræve en instantiering af den klasse, den tilhører. | Det endelige nøgleord angiver en enhed, der kun kan tildeles en gang. |
Variabler | |
De statiske variabler kan geninitialiseres. | De endelige variabler kan ikke geninitialiseres. |
Metoder | |
Kan kaldes med andre statiske metoder og kun få adgang til de statiske medlemmer af klassen. | De endelige metoder kan ikke tilsidesættes. |
Klasse | |
Det statiske klasseobjekt kan ikke oprettes. Den indeholder kun statiske medlemmer. | Den sidste klasse kan ikke arves af andre klasser. |
Blok | |
Det statiske nøgleord kan bruges i en blok. | Det sidste nøgleord bruges ikke med en blok. |
Resumé - statisk vs endelig i Java
Denne artikel diskuterede to nøgleord i Java som statisk og endelig. Forskellen mellem statisk og endelig i Java er, at statisk bruges til at definere det klassemedlem, der kan bruges uafhængigt af ethvert objekt i klassen, mens final bruges til at erklære en konstant variabel eller en metode, der ikke kan tilsidesættes, eller en klasse, der ikke kan arves.