Key Difference – statisk vs final i Java
Hvert programmeringsspråk har en bestemt syntaks. Programmereren bør følge disse syntaksene når han skriver programmer. Nøkkelordene til programmeringsspråk har spesifikke betydninger i henhold til oppgavene. De leveres av programmeringsspråket og kan ikke brukes til brukerdefinerte variabler, metoder, klasser osv. De statiske og endelige er to nøkkelord i Java. Denne artikkelen diskuterer forskjellen mellom statisk og endelig i Java. Den viktigste forskjellen mellom static og final i Java er at static brukes til å definere klassemedlemmet som kan brukes uavhengig av ethvert objekt i klassen mens final brukes til å erklære en konstant variabel eller en metode som ikke kan overstyres eller en klasse som kan ikke arves.
Hva er statisk i Java?
En klasse består av datamedlemmer (attributter) og metoder. For å kalle metodene, bør det være et objekt av den spesifikke klassen. Når en metode er erklært som statisk, er det ikke nødvendig å lage et objekt for å kalle den metoden. Metoden kan kalles ved å bruke klassenavnet. Se programmet nedenfor.
Figur 01: Java-program med statiske variabler og statisk metode
I følge programmet ovenfor inneholder klasse A tallvariabel og visningsmetode. Begge er statiske medlemmer. Derfor er det ikke nødvendig å opprette et objekt for å få tilgang til tallvariabelen og visningsmetoden. Programmereren kan skrive klassenavnet direkte for å skrive ut nummeret og ringe metodevisningen. Så det er ikke nødvendig å instansiere et objekt. Hvis tallvariabelen og visningsmetoden er ikke-statiske, bør det være et objekt av typen A.
Figur 02: Bruk av statisk blokk
Programmet ovenfor inneholder den statiske blokken og hovedmetoden. Den statiske blokken kalles når klassen er lastet. Derfor kjøres setningen i den statiske blokken før setningen i hovedblokken. Hvis det er mange statiske blokker, vil de kjøres i rekkefølge.
Hva er finalen i Java?
I programmet kan det være variabler av ulike typer. Hvis det er en variabel som int x=1; senere i programmet kan den variabelverdien endres til en annen verdi. En variabel som er erklært som endelig og initialisert med en verdi kan ikke endres senere i programmet.
Figur 03: Program med endelig variabel og arv
I følge programmet ovenfor er x en sluttvariabel. Den er tildelt en verdi 5. Den kan ikke endres en annen verdi fordi den er erklært som endelig. Java støtter objektorientert programmering (OOP). En søyle i OOP er en polymorfisme. En type polymorfisme er overordnet. Klasse A har visningsmetoden. Klassen B utvider klasse A og den har sin egen visningsmetode. Når du oppretter et objekt av type B og kaller opp, vil visningsmetoden skrive ut "B" som utdata. Visningsmetoden til klasse A overstyres av visningsmetoden til klasse B.
Hvis programmereren hva skal unngå å overstyre en metode, så kan han bruke det siste nøkkelordet for den metoden. Hvis visningsmetoden i klasse A er endelig, vil visningsmetoden i B gi en feil fordi den metoden ikke kan overstyres.
Figur 04: siste søkeord i metoden
En annen pilar i OOP er arv. Det hjelper å gjenbruke den allerede eksisterende koden. Den nye klassen kan strekke seg fra den eksisterende klassen og bruke datamedlemmene og metodene til den eksisterende klassen. Hvis det er nødvendig å slutte å arve en klasse, kan programmereren bruke nøkkelordet "finale". Se programmet nedenfor.
Figur 05: siste søkeord i klassen
I henhold til programmet ovenfor er klasse A erklært som endelig. Når klasse B utvider A, gir det en feil fordi klasse A erklæres som endelig. Den kan ikke arves av andre klasser.
Hva er likheten mellom statisk og endelig i Java?
Både statiske og endelige er nøkkelord i Java
Hva er forskjellen mellom statisk og endelig i Java?
static vs final in Java |
|
Statisk nøkkelord angir at en medlemsvariabel, eller metode, kan nås uten å kreve en instansiering av klassen den tilhører. | Det siste søkeordet angir en enhet som bare kan tilordnes én gang. |
Variabler | |
De statiske variablene kan reinitialiseres. | De endelige variablene kan ikke reinitialiseres. |
Methods | |
Kan kalles med andre statiske metoder og bare få tilgang til de statiske medlemmene av klassen. | De endelige metodene kan ikke overstyres. |
Klasse | |
Det statiske klasseobjektet kan ikke opprettes. Den inneholder bare statiske medlemmer. | Den siste klassen kan ikke arves av andre klasser. |
Block | |
Det statiske nøkkelordet kan brukes i en blokk. | Det siste søkeordet brukes ikke med en blokk. |
Sammendrag – statisk vs finale i Java
Denne artikkelen diskuterte to nøkkelord i Java, for eksempel statisk og endelig. Forskjellen mellom static og final i Java er at static brukes til å definere klassemedlemmet som kan brukes uavhengig av ethvert objekt i klassen mens final brukes til å erklære en konstant variabel eller en metode som ikke kan overstyres eller en klasse som ikke kan gå i arv.