Differenza tra statico e finale in Java

Autore: Laura McKinney
Data Della Creazione: 2 Aprile 2021
Data Di Aggiornamento: 6 Maggio 2024
Anonim
Modificatori FINAL e STATIC
Video: Modificatori FINAL e STATIC

Contenuto


Statico e finale sono entrambe le parole chiave utilizzate in Java. È possibile accedere al membro statico prima di creare l'oggetto classe. Final ha un effetto diverso se applicato a classe, metodi e variabili. La differenza principale tra una parola chiave statica e una finale è quella statico Questa parola chiave viene utilizzata per definire il membro della classe che può essere utilizzato indipendentemente da qualsiasi oggetto di quella classe. Finale la parola chiave viene utilizzata per dichiarare, una variabile costante, un metodo che non può essere sovrascritto e una classe che non può essere ereditata.

  1. Tabella di comparazione
  2. Definizione
  3. Differenze chiave
  4. Conclusione

Tabella di comparazione

Base per il confrontoStaticoFinale
ApplicabileLa parola chiave statica è applicabile a classe statica nidificata, variabili, metodi e blocco.La parola chiave finale è applicabile a classe, metodi e variabili.
InizializzazioneNon è obbligatorio inizializzare la variabile statica al momento della sua dichiarazione.È obbligatorio inizializzare la variabile finale al momento della sua dichiarazione.
ModificaLa variabile statica può essere reinizializzata.La variabile finale non può essere reinizializzata.
metodiI metodi statici possono accedere solo ai membri statici della classe e possono essere chiamati solo da altri metodi statici.I metodi finali non possono essere ereditati.
ClasseL'oggetto Classi statiche non può essere creato e contiene solo membri statici.Una classe finale non può essere ereditata da nessuna classe.
BloccareIl blocco statico viene utilizzato per inizializzare le variabili statiche.La parola chiave finale non supporta tale blocco.


Definizione di statico

Statico è una parola chiave, applicabile a classi, variabili, metodi e blocchi. I membri della classe, la classe e i blocchi possono essere resi statici usando la parola chiave "statica" davanti al nome dei membri della classe, della classe e dei blocchi rispettivamente. Quando un membro della classe viene dichiarato statico, diventa globale per tutti gli altri membri della classe. Il membro statico della classe non occupa memoria per istanza, ovvero tutti gli oggetti condividono la stessa copia del membro statico. Il membro statico può essere utilizzato indipendentemente da qualsiasi oggetto di quella classe. È possibile accedere al membro statico della classe prima che venga creato il suo oggetto. Il miglior esempio del membro statico è il metodo main (), è dichiarato statico in modo che possa essere invocato prima che esista qualsiasi oggetto. Il modulo generale per accedere al membro statico della classe:


class_name.static_member // accesso al membro statico della classe

Nel codice sopra class_name è il nome della classe in cui è definito static_member. Il membro statico può essere una variabile statica o un metodo statico

Variabili statiche:

  • Una variabile statica si comporta come una variabile globale per tutti gli altri membri di dati della classe.
  • È possibile accedere a una variabile statica prima che esista qualsiasi oggetto della classe.
  • È possibile accedere a una variabile statica con il nome della classe in cui è definita seguita dall'operatore punto (.).

Metodi statici:

  • Un metodo statico può chiamare solo altri metodi statici.
  • Un metodo statico può accedere solo ai dati statici.
  • Un metodo statico non può essere riferito a "questo" o "super" in nessuna condizione.
  • È possibile accedere a un metodo statico con il nome della classe in cui è definito seguito dall'operatore punto (.).

Classe statica:

  • Java ha il concetto di classe statica nidificata. La classe più esterna non può essere resa statica mentre la classe più interna può essere resa statica.
  • Una classe nidificata statica non può accedere al membro non statico della classe esterna.
  • Può accedere solo ai membri statici della classe esterna.

Blocco statico:

Il blocco statico viene eseguito una sola volta quando viene caricata la classe. Utilizzato per inizializzare le variabili statiche della classe.

C ++:

In C ++ abbiamo il concetto di variabili statiche e di funzioni statiche mentre C ++ non supporta la classe statica.

C #:

C # supporta anche la classe statica, le variabili statiche e la classe statica.

Giava:

Java supporta classe nidificata statica, variabili statiche, metodi statici.

Definizione di Final

Final è una parola chiave applicabile alla classe, alla variabile e ai metodi. La classe, la variabile e il metodo sono dichiarati come finali usando la parola chiave "final" preceduta dal loro nome. Una volta che una variabile viene dichiarata come definitiva; non può essere ulteriormente modificato nel programma. Una variabile finale deve essere inizializzata alla dichiarazione dei tempi. Le variabili finali non occupano memoria per istanza. Tutti gli oggetti delle classi condividono la stessa copia della variabile finale.

Il metodo dichiarato come finale non può essere ignorato dalla sottoclasse di quella classe in cui viene dichiarato il metodo finale. Quando una classe viene dichiarata come ultima, un'altra classe non può ereditare quella classe finale. C ++, C # non supportano il concetto se la parola chiave finale. Java supporta il concetto di parola chiave finale e in Java; classe, variabile e metodo possono essere dichiarati come finali.

  1. La parola chiave statica è applicabile a una classe statica nidificata, variabili, metodi e blocchi. D'altra parte, la parola chiave finale è applicabile ai metodi e alle variabili di classe.
  2. La variabile statica può essere inizializzata in qualsiasi momento, mentre una variabile finale deve essere inizializzata al momento della dichiarazione.
  3. Una variabile statica può essere reinizializzata mentre, una volta inizializzata, una variabile finale non può mai essere reinizializzata.
  4. Un metodo statico può accedere al membro statico della classe e può essere invocato solo da altri metodi statici. D'altra parte, il metodo finale non può mai essere ereditato da nessuna classe.
  5. Il blocco statico viene utilizzato per inizializzare le variabili statiche mentre la parola chiave finale non supporta alcun blocco.

Conclusione:

Sia la parola chiave statica che quella finale risolvono scopi diversi se applicate a classe, variabile e metodo.