Forskjellen mellom endelig og statisk

I matte og vitenskap er konstanten et uttrykk som betegner en bestemt verdi som 'π', som er et praktisk navn for nummer 3.14159. Java har sin type konstanter. Disse er variabler som under (a) ikke tilhører noen gjenstand, og under (b) endrer ikke verdien når de er angitt. Det statiske ordet i den variable erklæringen viser at variabelen ikke tilhører noe objekt. Det er et lignende søkeord som sier at variabelverdien bare settes en gang og ikke vil endres. Dette er nøkkelordet endelig. Dette søkeordet er ikke begrenset til statiske variabler, men kan brukes med forekomstvariabler, lokale variabler, og til og med med variabler som er parametermetoder. Ved å erklære variabelen som en endelig, viser du til alle at variabelen under eksistensen vil ha samme verdi. Enda viktigere vil kompilatoren oppdage hvert forsøk på å endre verdien av en såklart variabel og rapportere det som en feil. Når det gjelder Java-terminologien, kalles variabelen som er deklarert som statisk og endelig, en konstant.

Hva er Final?

Endelig modifikator kan brukes flere steder i Java-programmeringsspråket. Her vil vi dekke den mest vanlige bruken. Den endelige modifikatoren kan brukes til deklarasjonen av en lokal variabel, funksjonsargument og ikke-statisk eller statisk medlemsvariabler. I denne konteksten omformer den variable modifikatoren til en konstant. Oversetteren oversetteren vil kontrollere om noen kode forsøker å endre verdien, og slike forsøk blir merket som en feil. Her er et eksempel.

endelig int verdi = 17;

Statiske medlemsvariabler med denne modifikatoren brukes som globale konstanter; for eksempel i java.lang.Math variabelen PI, er det oppgitt nøyaktig

offentlig statisk endelig dobbel PI = 3.14159265358979323846;

Vi kan bruke den endelige modifikatoren til funksjonserklæringen. Funksjonen merket med finalen kan ikke lenger overstyres - det er den endelige implementeringen. De abstrakte metodene kan ikke erklæres endelig - at de er abstrakte betyr at de mangler implementering; det kan absolutt ikke være deres ultimate tilstand. Her er et eksempel.

offentlig endelig int meaningLife ()

returnere 42;

Vi kan bruke den endelige modifikatoren til klassedeklarasjonen. Klassen som er merket med finalen kan ikke lenger arve - det er den endelige gjennomføringen. Klart, abstrakt klasse kan ikke være endelig på samme tid. Her er et eksempel

offentlig avsluttende klasse Lukket

// ...

En av de fineste klasseeksemplene er java.lang.String-klassen - det er endelig, slik at ingen kunne arve det og dermed få tilgang til medlemsvariablene.

Hva er Statisk?

Statiske variabler tilhører ikke bestemt forekomst av klasse. Statiske variabler tilhører selve klassen og i minnet er det bare ett sted, uavhengig av antall kopier av den klassen som er opprettet i minnet. Ikke-statiske variabler tilhører klasseprøver - hver forekomst av klassen har sin egen kopi av slike variabler. Statiske variabler tilhører klassen - klassen i minnet holder verdiene til slike variabler; alle prøveklasser ser derfor det samme innholdet, så vi kan vurdere statiske variabler som skal deles mellom alle klassestørrelser. Ved å oppdatere verdivariabelen blir den nye verdien automatisk synlig for alle forekomster av denne klassen. Statisk filter kan brukes på ethvert element lovlig erklært i en klasse. Når det gjelder medlemskapsvariabler, er konsekvensen at slike medlemsvariabler kun lagres i minnet på ett sted. Hva skjer hvis det er en metode? Ved å erklære metoden som statisk, er meldingen den samme: Den aktuelle metoden tilhører ikke klasseklasser, men til selve klassen. Følgelig vil statiske metoder ikke motta en skjult referanse til objektet over hvilket de kalles på samtalen; i statiske referansemetoder er dette ikke tilgjengelig. Å påberope seg statiske metoder på tvers av objektet, er faktisk like forvirrende som å få tilgang til statiske medlemsvariabler ved å henvise til denne referansen: i begge tilfeller er det bedre å bare skrive navnet på klassen, poenget og navnet på anropsmetoden.

Forskjellen mellom endelig og statisk

  1. variabel

Statisk står for en variabel som er felles for alle objekter som instantierer en gitt klasse mens endelig definerer konstanten.

  1. Metode

Statisk er en metode som er den samme for hvert objekt gitt klasse - kalles også klassemedlem, f.eks. slik er den viktigste metoden. Endelig metode kan ikke behandles i arvet klasse.

  1. Klasse

Den endelige kan ikke utvides, det tillater ikke underklasser. Statisk gjelder ikke for klasse.

  1. Verdi

For å si det enkelt, angav endelig at verdien ikke kan endres (overstyre). Statisk verdi er satt til standardverdien, men kan gjenopprettes.

Endelig vs Statisk: Sammenligningstabel

Sammendrag av endelig og statisk

  • Nøkkelfunksjonen statisk gir tilgang selv når det ikke er noe objekt (forekomst). Fremtredende klasser er deklarert gjennom nøkkelordet statisk. Hvis du ikke vil at verdien av noen endringer senere i programmet skal gå, eller hvis du vil at kompilatoren skal sjekke og forby, kan du endre det løftet til den endelige. Det er en statisk blokk for initialiseringen. Den statiske blokken for initialiseringen er deklarert som nøkkelen statisk foran parentesene. Denne typen blokk utføres en gang, under lesing av klasser, og den initialiserer vanligvis klassens statiske medlemmer.