Στατική μεταβλητή σε Java

⚡ Έξυπνη Σύνοψη

Στατική μεταβλητή σε Java ανήκει στην κλάση και όχι σε οποιοδήποτε αντικείμενο και αρχικοποιείται μία φορά κατά τη φόρτωση της κλάσης. Ένα ενιαίο κοινόχρηστο αντίγραφο εξυπηρετεί όλες τις παρουσίες, προσβάσιμο απευθείας μέσω του ονόματος της κλάσης χωρίς τη δημιουργία αντικειμένου.

  • 📦 Στατική Μεταβλητή: Ανήκει στην κλάση, μοιράζεται ένα αντίγραφο σε όλες τις παρουσίες, αρχικοποιείται μία φορά κατά τη φόρτωση.
  • ⚙️ Στατική μέθοδος: Ανήκει στην κλάση, έχει πρόσβαση μόνο σε στατικά δεδομένα και αγνοεί αυτό/super.
  • 🧱 Στατικό μπλοκ: Εκτελείται μία φορά όταν η κλάση φορτώνει για την αρχικοποίηση στατικών μελών δεδομένων.
  • 🔗 Πρόσβαση: Πρόσβαση σε στατικά μέλη απευθείας μέσω του ClassName.member χωρίς αντικείμενο.
  • Περιορισμός: Μια στατική μέθοδος δεν μπορεί να αναφερθεί απευθείας σε μη στατικές μεταβλητές (μοντέλων).

Στατική μεταβλητή σε Java

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

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

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

Σε τι είναι η στατική μεταβλητή Java?

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

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

Σύνταξη:

<class-name>.<variable-name>

Τι περιλαμβάνει η Στατική Μέθοδος Java?

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

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

Σύνταξη:

<class-name>.<method-name>

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

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

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

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

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 Στατικές Μέθοδοι και Μεταβλητές

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


Java Στατικές Μέθοδοι και Μεταβλητές

Βήμα 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?

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

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

Το παρακάτω πρόγραμμα είναι το παράδειγμα του στατικού μπλοκ 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);

 	}
}

θα λάβετε τα ακόλουθα αποτελέσματα του προγράμματος.

Value of a = 10
Value of b = 20

Συχνές Ερωτήσεις

Μια στατική μεταβλητή ανήκει στην κλάση και έχει ένα κοινόχρηστο αντίγραφο για όλα τα αντικείμενα. Μια μεταβλητή στιγμιότυπου ανήκει σε κάθε αντικείμενο και λαμβάνει ένα ξεχωριστό αντίγραφο ανά στιγμιότυπο, το οποίο αρχικοποιείται κατά τη δημιουργία του αντικειμένου.

Όχι. Μια στατική μέθοδος μπορεί να έχει πρόσβαση μόνο σε στατικά δεδομένα και σε άλλες στατικές μεθόδους. Η αναφορά σε μια μη στατική μεταβλητή (μονάδας) από ένα στατικό περιβάλλον προκαλεί σφάλμα μεταγλώττισης, επειδή δεν υπάρχει ακόμη αντικείμενο.

Ένα στατικό μπλοκ εκτελείται μία φορά, όταν η κλάση φορτώνεται για πρώτη φορά στην JVM, πριν δημιουργηθεί οποιοδήποτε αντικείμενο ή εκτελεστεί η μέθοδος main. Χρησιμοποιείται για την αρχικοποίηση στατικών μελών δεδομένων.

Η Τεχνητή Νοημοσύνη μπορεί να αναλύσει τον τρόπο με τον οποίο χρησιμοποιείται ένα πεδίο ή μια μέθοδος και να προτείνει στατικά δεδομένα όταν τα δεδομένα κοινοποιούνται σε όλες τις παρουσίες ή δεν απαιτείται κατάσταση παρουσίας.ping Οι προγραμματιστές αποφεύγουν τα περιττά αντικείμενα και μειώνουν τη χρήση μνήμης.

Ναι. Η ανάλυση με τη βοήθεια της τεχνητής νοημοσύνης μπορεί να επισημάνει μεταβλητή στατική κατάσταση που προκαλεί προβλήματα ασφάλειας νημάτων, κρυφές καθολικές εξαρτήσεις ή δυσκολίες δοκιμών και να προτείνει ασφαλέστερες εναλλακτικές λύσεις, όπως πεδία στιγμιότυπων ή ένεση εξαρτήσεων.

Συνοψίστε αυτήν την ανάρτηση με: