logo

Parola chiave statica Java

  1. Variabile statica
  2. Programma del contatore senza variabile statica
  3. Programma del contatore con variabile statica
  4. Metodo statico
  5. Restrizioni per il metodo statico
  6. Perché il metodo principale è statico?
  7. Blocco statico
  8. Possiamo eseguire un programma senza il metodo principale?

IL parola chiave statica In Giava viene utilizzato principalmente per la gestione della memoria. Possiamo applicare una parola chiave statica con variabili , metodi, blocchi e classi annidate . La parola chiave statica appartiene alla classe rispetto a un'istanza della classe.

altezza kat timpf

Lo statico può essere:

  1. Variabile (nota anche come variabile di classe)
  2. Metodo (noto anche come metodo di classe)
  3. Bloccare
  4. Classe nidificata
Statico in Java

1) Variabile statica Java

Se dichiari una variabile come statica, è nota come variabile statica.

  • La variabile statica può essere utilizzata per fare riferimento alla proprietà comune di tutti gli oggetti (che non è univoca per ciascun oggetto), ad esempio il nome dell'azienda dei dipendenti, il nome dell'università degli studenti, ecc.
  • La variabile statica ottiene memoria solo una volta nell'area della classe al momento del caricamento della classe.

Vantaggi della variabile statica

Rende il tuo programma efficiente in termini di memoria (vale a dire, risparmia memoria).

Comprendere il problema senza variabile statica

 class Student{ int rollno; String name; String college='ITS'; } 

Supponiamo che ci siano 500 studenti nel mio college, ora tutti i membri dei dati dell'istanza riceveranno memoria ogni volta che viene creato l'oggetto. Tutti gli studenti hanno il proprio rollno e nome univoci, quindi il membro dei dati di istanza è valido in questo caso. Qui “college” si riferisce alla proprietà comune di tutti oggetti . Se lo rendiamo statico, questo campo otterrà la memoria solo una volta.

La proprietà statica Java è condivisa con tutti gli oggetti.

Esempio di variabile statica

 //Java Program to demonstrate the use of static variable class Student{ int rollno;//instance variable String name; static String college ='ITS';//static variable //constructor Student(int r, String n){ rollno = r; name = n; } //method to display the values void display (){System.out.println(rollno+' '+name+' '+college);} } //Test class to show the values of objects public class TestStaticVariable1{ public static void main(String args[]){ Student s1 = new Student(111,'Karan'); Student s2 = new Student(222,'Aryan'); //we can change the college of all objects by the single line of code //Student.college='BBDIT'; s1.display(); s2.display(); } } 
Provalo adesso

Produzione:

cosa significa questo xd?
 111 Karan ITS 222 Aryan ITS 

Programma del contatore senza variabile statica

In questo esempio, abbiamo creato una variabile di istanza denominata count che viene incrementata nel costruttore. Poiché la variabile di istanza ottiene la memoria al momento della creazione dell'oggetto, ogni oggetto avrà la copia della variabile di istanza. Se viene incrementato, non rifletterà altri oggetti. Quindi ogni oggetto avrà il valore 1 nella variabile count.

 //Java Program to demonstrate the use of an instance variable //which get memory each time when we create an object of the class. class Counter{ int count=0;//will get memory each time when the instance is created Counter(){ count++;//incrementing value System.out.println(count); } public static void main(String args[]){ //Creating objects Counter c1=new Counter(); Counter c2=new Counter(); Counter c3=new Counter(); } } 
Provalo adesso

Produzione:

 1 1 1 

Programma di contatore per variabile statica

Come accennato in precedenza, la variabile statica otterrà la memoria solo una volta, se un oggetto modifica il valore della variabile statica, manterrà il suo valore.

 //Java Program to illustrate the use of static variable which //is shared with all objects. class Counter2{ static int count=0;//will get memory only once and retain its value Counter2(){ count++;//incrementing the value of static variable System.out.println(count); } public static void main(String args[]){ //creating objects Counter2 c1=new Counter2(); Counter2 c2=new Counter2(); Counter2 c3=new Counter2(); } } 
Provalo adesso

Produzione:

 1 2 3 

2) Metodo statico Java

Se applichi una parola chiave statica con qualsiasi metodo, è noto come metodo statico.

  • Un metodo statico appartiene alla classe anziché all'oggetto di una classe.
  • Un metodo statico può essere invocato senza la necessità di creare un'istanza di una classe.
  • Un metodo statico può accedere al membro dati statico e modificarne il valore.

Esempio di metodo statico

 //Java Program to demonstrate the use of a static method. class Student{ int rollno; String name; static String college = 'ITS'; //static method to change the value of static variable static void change(){ college = 'BBDIT'; } //constructor to initialize the variable Student(int r, String n){ rollno = r; name = n; } //method to display values void display(){System.out.println(rollno+' '+name+' '+college);} } //Test class to create and display the values of object public class TestStaticMethod{ public static void main(String args[]){ Student.change();//calling change method //creating objects Student s1 = new Student(111,'Karan'); Student s2 = new Student(222,'Aryan'); Student s3 = new Student(333,'Sonoo'); //calling display method s1.display(); s2.display(); s3.display(); } } 
Provalo adesso
 Output:111 Karan BBDIT 222 Aryan BBDIT 333 Sonoo BBDIT 

Un altro esempio di metodo statico che esegue un calcolo normale

 //Java Program to get the cube of a given number using the static method class Calculate{ static int cube(int x){ return x*x*x; } public static void main(String args[]){ int result=Calculate.cube(5); System.out.println(result); } } 
Provalo adesso
 Output:125 

Restrizioni per il metodo statico

Esistono due restrizioni principali per il metodo statico. Sono:

ordinamento per inserimento in Java
  1. Il metodo statico non può utilizzare un membro dati non statico o chiamare direttamente un metodo non statico.
  2. this e super non possono essere utilizzati in un contesto statico.
 class A{ int a=40;//non static public static void main(String args[]){ System.out.println(a); } } 
Provalo adesso
 Output:Compile Time Error 

D) Perché il metodo principale Java è statico?

Risposta) È perché non è necessario che l'oggetto chiami un metodo statico. Se fosse un metodo non statico, JVM crea prima un oggetto, quindi chiama il metodo main() che porterà al problema dell'allocazione di memoria aggiuntiva.


3) Blocco statico Java

  • Viene utilizzato per inizializzare il membro dati statico.
  • Viene eseguito prima del metodo main al momento del caricamento della classe.

Esempio di blocco statico

 class A2{ static{System.out.println('static block is invoked');} public static void main(String args[]){ System.out.println('Hello main'); } } 
Provalo adesso
 Output:static block is invoked Hello main 

D) Possiamo eseguire un programma senza il metodo main()?

Ans) No, uno dei modi era il blocco statico, ma era possibile fino a JDK 1.6. A partire da JDK 1.7, non è possibile eseguire una classe Java senza il file metodo principale .

 class A3{ static{ System.out.println('static block is invoked'); System.exit(0); } } 
Provalo adesso

Produzione:

tipi di dati in Java
 static block is invoked 

A partire da JDK 1.7 e versioni successive, l'output sarebbe:

 Error: Main method not found in class A3, please define the main method as: public static void main(String[] args) or a JavaFX application class must extend javafx.application.Application