Στατική μεταβλητή σε Java: Τι είναι το Static Block & Method [Παράδειγμα]

Η στατική μπορεί να είναι:

  1. Στατικές Μεταβλητές
  2. Στατικές Μέθοδοι
  3. Στατικά μπλοκ κώδικα.

Ας δούμε πρώτα τις στατικές μεταβλητές και τις στατικές μεθόδους.

Τι είναι η στατική μεταβλητή στην Java;

Στατική μεταβλητή σε Java είναι μεταβλητή που ανήκει στην κλάση και αρχικοποιείται μόνο μία φορά στην αρχή της εκτέλεσης. Είναι μια μεταβλητή που ανήκει στην κλάση και όχι σε αντικείμενο(instance). Οι στατικές μεταβλητές αρχικοποιούνται μόνο μία φορά, στην αρχή της εκτέλεσης. Αυτές οι μεταβλητές θα αρχικοποιηθούν πρώτα, πριν από την αρχικοποίηση οποιασδήποτε μεταβλητής παρουσίας.

  • Ένα μόνο αντίγραφο για κοινή χρήση από όλες τις παρουσίες της τάξης
  • Μια στατική μεταβλητή μπορεί να προσπελαστεί απευθείας από το όνομα της κλάσης και δεν χρειάζεται κανένα αντικείμενο

Σύνταξη:

<class-name>.<variable-name>

Τι είναι η στατική μέθοδος στην Java;

Στατική μέθοδος σε Java είναι μια μέθοδος που ανήκει στην κλάση και όχι στο αντικείμενο. Μια στατική μέθοδος μπορεί να έχει πρόσβαση μόνο στα στατικά δεδομένα. Είναι μια μέθοδος που ανήκει στην κλάση και όχι στο αντικείμενο (στιγμιότυπο). Μια στατική μέθοδος μπορεί να έχει πρόσβαση μόνο στα στατικά δεδομένα. Δεν μπορεί να έχει πρόσβαση σε μη στατικά δεδομένα (μεταβλητές παράδειγμα).

  • Μια στατική μέθοδος μπορεί να καλέσει μόνο άλλες στατικές μεθόδους και δεν μπορεί να καλέσει μια μη στατική μέθοδο από αυτήν.
  • Μια στατική μέθοδος είναι προσβάσιμη απευθείας από το όνομα της κλάσης και δεν χρειάζεται κανένα αντικείμενο
  • Μια στατική μέθοδος δεν μπορεί να αναφέρεται σε λέξεις-κλειδιά "αυτό" ή "super" σε καμία περίπτωση

Σύνταξη:

<class-name>.<method-name>

Σημείωση: Η κύρια μέθοδος είναι στατική, αφού πρέπει να είναι προσβάσιμη για να εκτελεστεί μια εφαρμογή, πριν πραγματοποιηθεί οποιαδήποτε εγκατάσταση.


Ας μάθουμε τις αποχρώσεις των στατικών λέξεων-κλειδιών κάνοντας μερικές ασκήσεις!

Παράδειγμα: Πώς να καλέσετε στατικές μεταβλητές και μεθόδους

Βήμα 1) Αντιγράψτε το following κώδικα σε έναν επεξεργαστή

public class Demo{
   public static void main(String args[]){
     Student s1 = new Student();
     s1.showData();
     Student s2 = new Student();
     s2.showData();
     //Student.b++;
     //s1.showData();
  }
}

class Student {
int a; //initialized to zero
static int b; //initialized to zero only when class is loaded not for each object created.

  Student(){
   //Constructor incrementing static variable b
   b++;
  }

   public void showData(){
      System.out.println("Value of a = "+a);
      System.out.println("Value of b = "+b);
   }
//public static void increment(){
//a++;
//}

}

Βήμα 2) Αποθηκεύστε και μεταγλωττίστε τον κώδικα. Εκτελέστε τον κωδικό ως, java Demo.

Βήμα 3) Η αναμενόμενη έξοδος εμφανίζεται παρακάτω


Java Static Methods and Variables

Following Το διάγραμμα δείχνει πώς δημιουργούνται οι μεταβλητές και τα αντικείμενα αναφοράς και οι στατικές μεταβλητές είναι προσβάσιμες από τις διαφορετικές παρουσίες.


Java Static Methods and Variables

Βήμα 4) Είναι δυνατή η πρόσβαση σε μια στατική μεταβλητή εκτός της κλάσης χρησιμοποιώντας τη σύνταξη ClassName.Variable_Name. Γραμμή χωρίς σχόλια # 7 & 8 . Αποθήκευση, μεταγλώττιση και εκτέλεση. Παρατηρήστε την έξοδο.

Value of a = 0
Value of b = 1
Value of a = 0
Value of b = 2
Value of a = 0
Value of b = 3

Βήμα 5) Απαλοιφή σχολίων γραμμή 25,26 & 27 . Αποθήκευση, μεταγλώττιση και εκτέλεση.

	 error: non-static variable a cannot be referenced from a static context a++; 

Βήμα 6) Σφάλμα = ? Αυτό συμβαίνει επειδή δεν είναι δυνατή η πρόσβαση στη μεταβλητή παρουσίας "a"από μέθοδο java static class"αύξηση".

Τι είναι το Static Block στην Java;

Η στατικό μπλοκ είναι ένα μπλοκ εντολών μέσα σε μια κλάση Java που θα εκτελεστεί όταν μια κλάση φορτωθεί για πρώτη φορά στο FMV. ΈΝΑ Το στατικό μπλοκ βοηθά στην προετοιμασία των στατικών μελών δεδομένων, ακριβώς όπως οι κατασκευαστές βοηθούν στην προετοιμασία μελών στιγμιότυπου.

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

Following πρόγραμμα είναι το παράδειγμα του στατικού μπλοκ java.

Παράδειγμα: Τρόπος πρόσβασης στο στατικό μπλοκ

public class Demo {
 static int a;
 static int b;
 static {
    a = 10;
    b = 20;
 }
 public static void main(String args[]) {

  System.out.println("Value of a = " + a);
  System.out.println("Value of b = " + b);

 	}
}

θα πάρεις following έξοδο του προγράμματος.

Value of a = 10
Value of b = 20