Forskjellen mellom statisk og finale i Java

Forfatter: Laura McKinney
Opprettelsesdato: 2 April 2021
Oppdater Dato: 14 Kan 2024
Anonim
Рефакторинг: switch vs if-else vs enum vs HashMap [Шаблон "Команда"]
Video: Рефакторинг: switch vs if-else vs enum vs HashMap [Шаблон "Команда"]

Innhold


Statisk og endelig er begge nøkkelordene som brukes i Java. Det statiske medlemmet kan nås før klasseobjektet opprettes. Final har en annen effekt når den brukes på klasse, metoder og variabler. Hovedforskjellen mellom et statiske og endelige nøkkelord er det statisk er nøkkelord brukes til å definere klassemedlemmet som kan brukes uavhengig av ethvert objekt i den klassen. Endelig nøkkelord brukes til å erklære en konstant variabel, en metode som ikke kan overstyres og en klasse som ikke kan arves.

  1. Sammenligningstabell
  2. Definisjon
  3. Viktige forskjeller
  4. Konklusjon

Sammenligningstabell

Grunnlag for sammenligningstatiskEndelig
AktueltStatisk nøkkelord gjelder for nestet statisk klasse, variabler, metoder og blokkering.Det endelige nøkkelordet gjelder for klasse, metoder og variabler.
initialiseringDet er ikke obligatorisk å initialisere den statiske variabelen på tidspunktet for erklæringen.Det er obligatorisk å initialisere den endelige variabelen på tidspunktet for erklæringen.
modifiseringDen statiske variabelen kan initialiseres på nytt.Den endelige variabelen kan ikke initialiseres på nytt.
metoderStatiske metoder har bare tilgang til de statiske medlemmene i klassen, og kan bare kalles ved andre statiske metoder.Endelige metoder kan ikke arves.
KlasseStatiske klasserobjekt kan ikke opprettes, og det inneholder bare statiske medlemmer.En sluttklasse kan ikke arves av noen klasse.
BlokkereStatisk blokk brukes til å initialisere de statiske variablene.Det endelige nøkkelordet støtter ingen slik blokkering.


Definisjon av statisk

Statisk er et nøkkelord som kan brukes på klasser, variabler, metoder og blokker. Klassemedlemmene, klassen og blokkene kan gjøres statiske ved å bruke "statiske" nøkkelord foran navnet på klassemedlemmene, klassen og blokkene. Når et klassemedlem blir erklært som statisk, blir det globalt for alle andre medlemmer av klassen. Det statiske medlemmet i klassen opptar ikke minne på forekomstbasis, dvs. alle objektene har den samme kopien av det statiske medlemmet. Det statiske medlemmet kan brukes uavhengig av ethvert objekt i den klassen. Du kan få tilgang til det statiske medlemmet av klassen før objektet opprettes. Det beste eksemplet på det statiske elementet er hovedmetoden (), den erklæres statisk slik at den kan påberopes før det eksisterer et objekt. Den generelle formen for å få tilgang til det statiske medlemmet av klassen:

class_name.static_member // tilgang til statisk klassemedlem

I kodekoden ovenfor er navnet på klassen der statisk medlem er definert. Statisk element kan være en statisk variabel eller statisk metode


Statiske variabler:

  • En statisk variabel fungerer som en global variabel for alle andre datamedlemmer i klassen.
  • Du får tilgang til en statisk variabel før noe objekt av klassen eksisterer.
  • Du får tilgang til en statisk variabel med klassens navn der den er definert etterfulgt av punktoperatøren.

Statiske metoder:

  • En statisk metode kan bare kalle andre statiske metoder.
  • En statisk metode har bare tilgang til statiske data.
  • En statisk metode kan ikke henvises til “dette” eller “super” under noen forhold.
  • Du får tilgang til en statisk metode med klassens navn der den er definert etterfulgt av punktoperatøren.

Statisk klasse:

  • Java har begrepet nestet statisk klasse. Den ytterste klassen kan ikke gjøres statisk, mens den innerste klassen kan gjøres statisk.
  • En statisk nestet klasse har ikke tilgang til det ikke-statiske medlemmet av den ytre klassen.
  • Den får bare tilgang til de statiske medlemmene i den ytre klassen.

Statisk blokk:

Statisk blokk utføres bare en gang når klassen er lastet inn. Brukes til å initialisere de statiske variablene i klassen.

C ++:

I C ++ har vi konseptet med statiske variabler så vel som statiske funksjoner, mens C ++ ikke støtter statisk klasse.

C #:

C # støtter statisk klasse, statiske variabler og statisk klasse også.

Java:

Java støtter statisk nestet klasse, statiske variabler, statiske metoder.

Definisjon av finalen

Final er et nøkkelord som gjelder klassen, variabelen og metodene. Klassen, variabelen og metoden er erklært som endelig ved hjelp av nøkkelordet "endelig" foran deres navn. Når en variabel er erklært som endelig; det kan ikke endres videre i programmet. En endelig variabel må initialiseres på tidspunktet deklarasjonen. Endelige variabler opptar ikke minne per forekomstbasis. Alle objektene i klassene deler den samme kopien av den endelige variabelen.

Metoden som er erklært som endelig, kan ikke overstyres av underklassen til den klassen der den endelige metoden er erklært. Når en klasse er erklært som endelig, kan ikke andre klasser arve den siste klassen. C ++, C # støtter ikke konseptet hvis endelig nøkkelord. Java støtter begrepet endelige nøkkelord og i Java; klasse, variabel og metode kan deklareres som endelig.

  1. Det statiske nøkkelordet gjelder for en nestet statisk klasse, variabler, metoder og blokker. På den annen side er det endelige nøkkelordet gjeldende for klassemetoder og variabler.
  2. Statisk variabel kan initialiseres når som helst, mens en endelig variabel må initialiseres på erklæringstidspunktet.
  3. En statisk variabel kan initialiseres på nytt, mens en endelig variabel ikke kan initialiseres når den er initialisert.
  4. En statisk metode har tilgang til det statiske medlemmet av klassen, og kan bare påberopes ved andre statiske metoder. På den annen side kan den endelige metoden aldri arves av noen klasse.
  5. Statisk blokk brukes til å initialisere de statiske variablene, mens det endelige nøkkelordet ikke støtter noen blokkering.

Konklusjon:

Både statiske og endelige nøkkelord løser forskjellige formål når de brukes på klasse, variabel og metode.