Diferența dintre statica și finală în Java

Autor: Laura McKinney
Data Creației: 2 Aprilie 2021
Data Actualizării: 17 Mai 2024
Anonim
Diferența dintre statica și finală în Java - Tehnologie
Diferența dintre statica și finală în Java - Tehnologie

Conţinut


Static și final sunt ambele cuvinte cheie utilizate în Java. Membrul static poate fi accesat înainte de crearea obiectului de clasă. Final are un efect diferit atunci când este aplicat la clasă, metode și variabile. Principala diferență între un cuvânt cheie static și final este că static is keywords este utilizat pentru a defini membrul clasei care poate fi utilizat independent de orice obiect al clasei respective. Final cuvântul cheie este utilizat pentru a declara, o variabilă constantă, o metodă care nu poate fi suprasolicitată și o clasă care nu poate fi moștenită.

  1. Diagramă de comparație
  2. Definiție
  3. Diferențele cheie
  4. Concluzie

Diagramă de comparație

Baza pentru comparațieStaticFinal
AplicabilCuvântul cheie static se aplică clasei statice, variabilelor, metodelor și blocului cuibărit.Cuvântul cheie final este aplicabil clasei, metodelor și variabilelor.
InițializareaNu este obligatorie inițializarea variabilei statice la data declarației.Este obligatorie inițializarea variabilei finale la data declarației.
ModificareVariabila statică poate fi reinicializată.Variabila finală nu poate fi reinicializată.
metodeMetodele statice pot accesa numai membrii statici ai clasei și pot fi numiți doar prin alte metode statice.Metodele finale nu pot fi moștenite.
ClasăObiectul claselor statice nu poate fi creat și conține doar membri statici.O clasă finală nu poate fi moștenită de nicio clasă.
blocBlocul static este folosit pentru inițializarea variabilelor statice.Cuvântul cheie final nu acceptă un astfel de bloc.


Definiția Static

Static este un cuvânt cheie, aplicabil claselor, variabilelor, metodelor și blocurilor. Membrii clasei, clasa și blocurile pot fi făcute statice folosind cuvântul cheie „static” în fața numelui membrilor clasei, clasei și respectiv blocurilor. Când un membru al clasei este declarat static, devine global pentru toți ceilalți membri ai clasei. Membrul static al clasei nu ocupă memorie de fiecare dată, adică toate obiectele partajează aceeași copie a membrului static. Membrul static poate fi utilizat independent de orice obiect al clasei respective. Puteți accesa membru static al clasei înainte de crearea obiectului acesteia. Cel mai bun exemplu de membru static este metoda principală (), este declarată statică, astfel încât poate fi invocată înainte de a exista orice obiect. Formularul general pentru accesarea membrului static al clasei:

class_name.static_member // accesarea unui membru static al clasei

În codul de mai sus, numele de clasă este numele clasei în care este definit static_member. Membrul static poate fi o variabilă statică sau o metodă statică


Variabile statice:

  • O variabilă statică acționează ca o variabilă globală pentru toți ceilalți membri ai clasei.
  • Poate fi accesată o variabilă statică înainte ca orice obiect al clasei să existe.
  • Se poate accesa o variabilă statică cu numele clasei în care este definită urmată de operatorul punct (.).

Metode statice:

  • O metodă statică poate apela doar la alte metode statice.
  • O metodă statică poate accesa numai date statice.
  • O metodă statică nu poate fi denumită „aceasta” sau „super” în nicio condiție.
  • Se poate accesa o metodă statică cu numele clasei în care este definită urmată de operatorul punct (.).

Clasa statică:

  • Java are conceptul de clasică statică cuibărită. Clasa cea mai exterioară nu poate fi făcută static, în timp ce clasa cea mai interioară poate fi făcută statică.
  • O clasă statică cuibărită nu poate accesa membrul nestatic al clasei externe.
  • Poate accesa numai membrii statici ai clasei exterioare.

Bloc static:

Blocul static se execută o singură dată la încărcarea clasei. Folosit pentru inițializarea variabilelor statice ale clasei.

C ++:

În C ++ avem conceptul de variabile statice, precum și funcții statice, în timp ce C ++ nu acceptă clasa statică.

C #:

C # acceptă clasa statică, variabilele statice și clasa statică.

Java:

Java acceptă clasa statică cuibărită, variabile statice, metode statice.

Definiția Final

Final este un cuvânt cheie aplicabil clasei, variabilei și metodelor. Clasa, variabila și metoda este declarată finală folosind cuvântul cheie „final” precedat de numele lor. Odată ce o variabilă este declarată finală; nu poate fi modificat în continuare în program. O variabilă finală trebuie inițiată la declarația de timp. Variabilele finale nu ocupă memorie pentru fiecare instanță. Toate obiectele claselor au aceeași copie a variabilei finale.

Metoda declarată finală nu poate fi anulată de subclasa clasei în care este declarată metoda finală. Când o clasă este declarată finală, o altă clasă nu poate moșteni acea clasă finală. C ++, C # nu acceptă conceptul în cazul în care cuvântul cheie final. Java acceptă conceptul de cuvânt cheie final și în Java; clasa, variabila și metoda pot fi declarate finale.

  1. Cuvântul cheie static se aplică unei clase, variabile, metode și blocuri statice cuibărite. Pe de altă parte, cuvântul cheie final este aplicabil metodelor și variabilelor clasei.
  2. Variabila statică poate fi inițiată oricând, în timp ce o variabilă finală trebuie inițiată la momentul declarației.
  3. O variabilă statică poate fi reinițializată, în timp ce, odată inițiată, o variabilă finală nu poate fi reinițializată.
  4. O metodă statică poate accesa membrul static al clasei și poate fi invocată numai prin alte metode statice. Pe de altă parte, metoda finală nu poate fi moștenită niciodată de nicio clasă.
  5. Blocul static este folosit pentru inițializarea variabilelor statice, în timp ce cuvântul cheie final nu acceptă niciun bloc.

Concluzie:

Ambele cuvinte cheie statice și finale rezolvă un scop diferit atunci când sunt aplicate la clasă, variabilă și metodă.