Forskellen mellem final og statisk

I matematik og videnskab er konstanten et udtryk, der betegner en bestemt værdi såsom 'π', som er et praktisk navn på tallet 3.14159. Java har sin slags konstanter. Dette er variabler, der under (a) ikke hører til noget objekt, og under (b) ændrer ikke deres værdi, når de er indstillet. Det statiske ord i variabelangivelsen viser, at variablen ikke hører til noget objekt. Der er et lignende nøgleord, der siger, at variabelværdien kun indstilles én gang og ikke ændres. Dette er nøgleordets endelige. Dette nøgleord er ikke begrænset til statiske variabler, men kan bruges med forekomstvariabler, lokale variabler og endda med variabler, der er parametermetoder. Ved at erklære variablen som en sidste, viser du for alle, at variablen under eksistensen vil have den samme værdi. Vigtigere er det, at compileren registrerer ethvert forsøg på at ændre værdien af ​​en så erklæret variabel og rapportere den som en fejl. Hvad Java-terminologien angår, kaldes den variabel, der er erklæret som statisk og endelig, en konstant.

Hvad er endelig?

Den endelige modifikator kan bruges flere steder på Java-programmeringssprog. Her vil vi dække dets mest almindelige brug. Den endelige modifikator kan anvendes til deklarationen af ​​en lokal variabel, funktionsargument og ikke-statiske eller statiske medlemsvariabler. I denne sammenhæng konverteres den variable modifikator til en konstant. Oversætterens sprogoversætter vil kontrollere, om en eller anden kode forsøger at ændre værdien, og sådanne forsøg vil blive markeret som en fejl. Her er et eksempel.

endelig int-værdi = 17;

Statiske medlemsvariabler med denne modifikator bruges som globale konstanter; for eksempel i java.lang.Math-variablen PI angives det nøjagtigt

offentlig statisk endelig dobbelt PI = 3.14159265358979323846;

Vi kan anvende den endelige ændrer på erklæringen om funktion. Funktionen markeret med den endelige kan ikke længere tilsidesættes - det er dens endelige implementering. De abstrakte metoder kan ikke erklæres endelige - det faktum, at de er abstrakte, betyder, at de mangler implementering; det kan bestemt ikke være deres ultimative tilstand. Her er et eksempel.

public final int meaningLife ()

retur 42;

Vi kan anvende den endelige ændrer på klassedeklarationen. Klassen, der er markeret med finalen, kan ikke længere arve - det er dens endelige implementering. Det er klart, abstrakt klasse kan ikke være endelig på samme tid. Her er et eksempel

offentlig finaleklasse lukket

// ...

Et af eksemplerne på finite class er java.lang.String-klassen - den er begrænset, så ingen kunne arve den og dermed få adgang til dens medlemsvariabler.

Hvad er statisk?

Statiske variabler hører ikke til bestemte forekomster af klassen. Statiske variabler hører til klassen, og i hukommelsen er der kun et sted, uanset antallet af kopier af den klasse, der er oprettet i hukommelsen. Ikke-statiske variabler hører til klasseprøver - hver forekomst af klassen har sin egen kopi af sådanne variabler. Statiske variabler hører til klassen - klassen i hukommelsen holder værdierne for sådanne variabler; derfor ser alle prøveklasser det samme indhold, så vi kan overveje statiske variabler, der skal deles mellem alle klassestørrelser. Ved at opdatere værdivariablen vil den nye værdi automatisk blive synlig for alle tilfælde af den klasse. Statisk filter kan anvendes på ethvert element, der er lovligt deklareret i en klasse. I tilfælde af medlemsvariabler er konsekvensen, at sådanne medlemsvariabler kun gemmes i hukommelsen et sted. Hvad sker der, hvis det er en metode? Ved at erklære metoden som statisk, er meddelelsen den samme: den relevante metode hører ikke til klasser af klasser, men til selve klassen. Som følge heraf modtager statiske metoder ikke en skjult henvisning til det objekt, som de kaldes til, når det kaldes; i statiske referencemetoder er dette ikke tilgængeligt. Faktisk er brug af statiske metoder på tværs af objektet lige så forvirrende som adgang til statiske medlemsvariabler ved at henvise til denne reference: i begge tilfælde er det bedre at blot skrive navnet på klassen, punktet og navnet på den kaldende metode.

Forskellen mellem final og statisk

  1. Variabel

Statisk står for en variabel, der er fælles for alle objekter, der instantierer en given klasse, mens den endelige definerer konstanten.

  1. Metode

Statisk er en metode, der er den samme for hvert objekt, der gives klasse - kaldes også klassemedlem f.eks. sådan er den vigtigste metode. Den endelige metode kan ikke behandles i den arvede klasse.

  1. klasse

Finalen kan ikke udvides, dvs. tillader ikke underklasser. Statisk gælder ikke for klassen.

  1. Værdi

For at sige det enkelt, betegnet endelig, at værdien ikke kan ændres (tilsidesættes). Statisk værdi er indstillet til dens standardværdi, men kan geninitialiseres.

Final vs. Statisk: Sammenligningstabel

Resumé af endelig og statisk

  • Statisk tastearbejde giver adgang, selv når der ikke er noget objekt (forekomst). Fremtrædende klasser erklæres gennem stikkordet statiske. Hvis du ikke ønsker, at værdien af ​​nogle ændringer senere i programmet skal gå, eller hvis du ønsker, at kompilatoren skal kontrollere og forbyde, kan du ændre det løfte til finalen. Der er en statisk blok til initialisering. Den statiske blok til initialisering erklæres som den statiske nøgle foran konsollerne. Denne type blok udføres én gang under lektionen af ​​klasser, og den initialiserer normalt de statiske medlemmer af klassen.