Forskellen mellem statisk og final i Java

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

Indhold


Statisk og endelig er begge de nøgleord, der bruges i Java. Det statiske medlem kan åbnes, før klasseobjektet oprettes. Final har en anden effekt, når den anvendes til klasse, metoder og variabler. Den største forskel mellem et statisk og endeligt nøgleord er det statisk er nøgleord bruges til at definere klassemedlemmet, der kan bruges uafhængigt af ethvert objekt i den klasse. Final nøgleord bruges til at erklære, en konstant variabel, en metode, der ikke kan tilsidesættes, og en klasse, der ikke kan arves.

  1. Sammenligningstabel
  2. Definition
  3. Vigtige forskelle
  4. Konklusion

Sammenligningstabel

Grundlag for sammenligningStatiskFinal
AnvendeligStatisk nøgleord gælder for indlejret statisk klasse, variabler, metoder og blok.Det endelige nøgleord gælder for klasse, metoder og variabler.
InitialiseringDet er ikke obligatorisk at initialisere den statiske variabel på tidspunktet for dens erklæring.Det er obligatorisk at initialisere den endelige variabel på tidspunktet for dens erklæring.
ModifikationDen statiske variabel kan geninitialiseres.Den endelige variabel kan ikke geninitialiseres.
MetoderStatiske metoder har kun adgang til de statiske medlemmer af klassen og kan kun kaldes ved andre statiske metoder.Endelige metoder kan ikke arves.
klasseStatiske klasserobjekt kan ikke oprettes, og det indeholder kun statiske medlemmer.En sidste klasse kan ikke arves af nogen klasse.
BlokStatisk blok bruges til at initialisere de statiske variabler.Det endelige nøgleord understøtter ingen sådan blok.


Definition af statisk

Statisk er et nøgleord, der gælder for klasser, variabler, metoder og blokke. Klassemedlemmer, klasse og blokke kan gøres statiske ved hjælp af "statiske" nøgleord foran navnet på klassemedlemmer, klasse og blokke. Når et klassemedlem erklæres som statisk, bliver det globalt for alle andre medlemmer af klassen. Det statiske medlem af klassen optager ikke hukommelse pr. Instansbasis, dvs. alle objekter deler den samme kopi af det statiske medlem. Det statiske medlem kan bruges uafhængigt af ethvert objekt i den klasse. Du kan få adgang til det statiske medlem af klassen, før dets objekt oprettes. Det bedste eksempel på det statiske medlem er hovedmetoden (), den erklæres statisk, så det kan påberåbes, før der findes noget objekt. Den generelle form for adgang til det statiske medlem af klassen:

class_name.static_member // adgang til statisk klassemedlem

I ovenstående kode er klasse_navn navnet på den klasse, hvor statisk_medlem er defineret. Statisk element kan være en statisk variabel eller statisk metode


Statiske variabler:

  • En statisk variabel fungerer som en global variabel for alle andre klassemedlemmer.
  • Du kan få adgang til en statisk variabel, før der findes et objekt i klassen.
  • En statisk variabel kan åbnes med det klassens navn, hvori det er defineret efterfulgt af dot (.) -Operatøren.

Statiske metoder:

  • En statisk metode kan kun kalde andre statiske metoder.
  • En statisk metode har kun adgang til statiske data.
  • En statisk metode kan ikke henvises til “dette” eller “super” under nogen betingelser.
  • Du kan få adgang til en statisk metode med det klassenavn, det defineres efterfulgt af dot (.) -Operatøren.

Statisk klasse:

  • Java har konceptet med indlejret statisk klasse. Den yderste klasse kan ikke gøres statisk, mens den inderste klasse kan gøres statisk.
  • En statisk indlejret klasse kan ikke få adgang til det ikke-statiske medlem af den ydre klasse.
  • Det har kun adgang til de statiske medlemmer af den ydre klasse.

Statisk blok:

Statisk blok udføres kun én gang, når klassen er indlæst. Bruges til at initialisere klassens statiske variabler.

C ++:

I C ++ har vi begrebet statiske variabler såvel som statiske funktioner, hvorimod C ++ ikke understøtter statisk klasse.

C #:

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

Java:

Java understøtter statisk indlejret klasse, statiske variabler, statiske metoder.

Definition af finalen

Final er et nøgleord, der gælder for klassen, variablen og metoder. Klassen, variablen og metoden er erklæret som endelig ved hjælp af nøgleordet "endelig" forud for deres navn. Når en variabel først er erklæret som endelig; det kan ikke ændres yderligere i programmet. En sidste variabel skal initialiseres ved tidsangivelsen. Endelige variabler optager ikke hukommelse pr. Instansbasis. Alle objekter i klasserne deler den samme kopi af den endelige variabel.

Metoden, der er erklæret som endelig, kan ikke tilsidesættes af underklassen i den klasse, hvor den endelige metode er erklæret. Når en klasse er erklæret som endelig, kan anden klasse ikke arve den sidste klasse. C ++, C # understøtter ikke konceptet, hvis det endelige nøgleord. Java understøtter konceptet med det endelige nøgleord og i Java; klasse, variabel og metode kan erklæres som endelig.

  1. Det statiske nøgleord gælder for en indlejret statisk klasse, variabler, metoder og blokke. På den anden side gælder det endelige nøgleord til klassemetoder og variabler.
  2. Statisk variabel kan initialiseres når som helst, mens en endelig variabel skal initialiseres på erklæringstidspunktet.
  3. En statisk variabel kan geninitialiseres, mens en endelig variabel, når den først er initialiseret, aldrig kan initialiseres igen.
  4. En statisk metode kan få adgang til det statiske medlem af klassen og kan kun påberåbes ved andre statiske metoder. På den anden side kan den endelige metode aldrig arves af nogen klasse.
  5. Statisk blok bruges til at initialisere de statiske variabler, mens det endelige nøgleord ikke understøtter nogen blok.

Konklusion:

Både statiske og endelige nøgleord løser forskellige formål, når de anvendes til klasse, variabel og metode.