Metodo statico Java, variabile e blocco con esempio

Sommario:

Anonim

La statica può essere:

  1. Variabili statiche
  2. Metodi statici
  3. Blocchi statici di codice.

Diamo prima un'occhiata alle variabili statiche e ai metodi statici.

Che cos'è la variabile statica in Java?

La variabile statica in Java è una variabile che appartiene alla classe e viene inizializzata solo una volta all'inizio dell'esecuzione. È una variabile che appartiene alla classe e non all'oggetto (istanza). Le variabili statiche vengono inizializzate una sola volta, all'inizio dell'esecuzione. Queste variabili verranno inizializzate per prime, prima dell'inizializzazione di qualsiasi variabile di istanza.

  • Una singola copia da condividere da tutte le istanze della classe
  • È possibile accedere a una variabile statica direttamente dal nome della classe e non necessita di alcun oggetto

Sintassi:

< class-name>. 

Cos'è il metodo statico in Java?

Il metodo statico in Java è un metodo che appartiene alla classe e non all'oggetto. Un metodo statico può accedere solo ai dati statici. È un metodo che appartiene alla classe e non all'oggetto (istanza). Un metodo statico può accedere solo ai dati statici. Non può accedere a dati non statici (variabili di istanza).

  • Un metodo statico può chiamare solo altri metodi statici e non può chiamare un metodo non statico da esso.
  • È possibile accedere a un metodo statico direttamente dal nome della classe e non necessita di alcun oggetto
  • Un metodo statico non può comunque fare riferimento a parole chiave "this" o "super"

Sintassi:

< class-name>. 

Nota: il metodo principale è statico, poiché deve essere accessibile per l'esecuzione di un'applicazione prima che venga eseguita qualsiasi istanza.

Impariamo le sfumature delle parole chiave statiche facendo alcuni esercizi!

Esempio: come chiamare variabili e metodi statici

Passaggio 1) Copia il codice seguente in un editor

Demo del corso pubblico {public static void main (String args []) {Studente s1 = nuovo Studente ();s1.showData ();Studente s2 = nuovo Studente ();s2.showData ();//Student.b++;//s1.showData ();}}classe Studente {int a; // inizializzato a zerostatic int b; // inizializzato a zero solo quando la classe viene caricata non per ogni oggetto creato.Alunno(){// Costruttore che incrementa la variabile statica bb ++;}public void showData () {System.out.println ("Valore di a =" + a);System.out.println ("Valore di b =" + b);}// public static void increment () {// a ++;//}}

Passaggio 2) Salva e compila il codice. Esegui il codice come, java Demo .
Passaggio 3) Visualizzazione dell'output previsto di seguito


Il diagramma seguente mostra come vengono creati oggetti e variabili di riferimento e come si accede alle variabili statiche dalle diverse istanze.


Passaggio 4) È possibile accedere a una variabile statica dall'esterno della classe utilizzando la sintassi ClassName.Variable_Name . Rimuovi il commento dalle righe 7 e 8. Salva, compila ed esegui. Osserva l'output.

Value of a = 0Value of b = 1Value of a = 0Value of b = 2Value of a = 0Value of b = 3
Passaggio 5) Rimuovere il commento dalle righe 25, 26 e 27. Salva, compila ed esegui.
error: non-static variable a cannot be referenced from a static context a++;

Passaggio 6) Errore =? Questo perché non è possibile accedere alla variabile di istanza " a " dal metodo della classe statica java " increment ".

Cos'è il blocco statico in Java?

Il blocco statico è un blocco di istruzioni all'interno di una classe Java che verrà eseguita quando una classe viene caricata per la prima volta nella JVM. Un blocco statico aiuta a inizializzare i membri dei dati statici , proprio come i costruttori aiutano a inizializzare i membri dell'istanza.

class Test{static {//Code goes here}}

Il seguente programma è l'esempio del blocco statico java.

Esempio: come accedere al blocco statico

Demo del corso pubblico {static int a;static int b;statico {a = 10;b = 20;}public static void main (String args []) {System.out.println ("Valore di a =" + a);System.out.println ("Valore di b =" + b);}}

otterrai il seguente output del programma.

Value of a = 10Value of b = 20