Το στατικό μπορεί να είναι:
- Στατικές μεταβλητές
- Στατικές μέθοδοι
- Στατικά μπλοκ κώδικα.
Ας δούμε πρώτα τις στατικές μεταβλητές και τις στατικές μεθόδους.
Τι είναι η στατική μεταβλητή στην Java;
Η στατική μεταβλητή στην Java είναι μεταβλητή που ανήκει στην κλάση και αρχικοποιήθηκε μόνο μία φορά στην αρχή της εκτέλεσης. Είναι μια μεταβλητή που ανήκει στην τάξη και όχι σε αντικείμενο (παρουσία). Οι στατικές μεταβλητές αρχικοποιούνται μόνο μία φορά, στην αρχή της εκτέλεσης. Αυτές οι μεταβλητές θα αρχικοποιηθούν πρώτα, πριν από την αρχικοποίηση οποιωνδήποτε μεταβλητών παρουσίας.
- Ένα μεμονωμένο αντίγραφο για κοινή χρήση από όλες τις παρουσίες της τάξης
- Μια στατική μεταβλητή μπορεί να προσεγγιστεί απευθείας από το όνομα της τάξης και δεν χρειάζεται κανένα αντικείμενο
Σύνταξη:
< class-name>.
Τι είναι η στατική μέθοδος στην Java;
Η στατική μέθοδος στην Java είναι μια μέθοδος που ανήκει στην κλάση και όχι στο αντικείμενο. Μια στατική μέθοδος μπορεί να έχει πρόσβαση μόνο στατικά δεδομένα. Είναι μια μέθοδος που ανήκει στην κλάση και όχι στο αντικείμενο (παράδειγμα). Μια στατική μέθοδος μπορεί να έχει πρόσβαση μόνο στατικά δεδομένα. Δεν έχει πρόσβαση σε μη στατικά δεδομένα (μεταβλητές παρουσίας).
- Μια στατική μέθοδος μπορεί να καλέσει μόνο άλλες στατικές μεθόδους και δεν μπορεί να καλέσει μια μη στατική μέθοδο από αυτήν.
- Μια στατική μέθοδος μπορεί να προσεγγιστεί απευθείας από το όνομα της τάξης και δεν χρειάζεται κανένα αντικείμενο
- Η στατική μέθοδος δεν μπορεί να αναφέρεται σε λέξεις-κλειδιά "αυτό" ή "σούπερ"
Σύνταξη:
< class-name>.
Σημείωση: η κύρια μέθοδος είναι στατική, δεδομένου ότι πρέπει να είναι προσβάσιμη για να εκτελεστεί μια εφαρμογή, προτού πραγματοποιηθεί οποιαδήποτε παρουσίαση.
Ας μάθουμε τις αποχρώσεις των στατικών λέξεων-κλειδιών κάνοντας κάποιες ασκήσεις!
Παράδειγμα: Τρόπος κλήσης στατικών μεταβλητών και μεθόδων
Βήμα 1) Αντιγράψτε τον ακόλουθο κώδικα σε πρόγραμμα επεξεργασίας
επίδειξη δημόσιας τάξης {δημόσιος στατικός κενός κενός (String args []) {Student s1 = νέος μαθητής ();s1.showData ();Student s2 = νέος φοιτητής ();s2.showData ();//Student.b++;//s1.showData ();}}μαθητής τάξης {int ένα; // αρχικοποιήθηκε στο μηδένστατικό int b; // αρχικοποιείται στο μηδέν μόνο όταν η κλάση φορτώνεται όχι για κάθε αντικείμενο που δημιουργείται.Μαθητης σχολειου(){// Στατική μεταβλητή που αυξάνει τον κατασκευαστή ββ ++;}δημόσιο άκυρο showData () {System.out.println ("Τιμή a =" + a);System.out.println ("Τιμή b =" + b);}// δημόσια αύξηση στατικού κενού () {// α ++;//}}
Βήμα 2) Αποθήκευση και μεταγλώττιση του κώδικα. Εκτελέστε τον κωδικό ως, java Demo .
Βήμα 3) Αναμένεται εμφάνιση εξόδου παρακάτω
Το παρακάτω διάγραμμα δείχνει, πώς δημιουργούνται οι μεταβλητές αναφοράς και τα αντικείμενα και οι στατικές μεταβλητές έχουν πρόσβαση από τις διάφορες παρουσίες.
Βήμα 4) Είναι δυνατή η πρόσβαση σε μια στατική μεταβλητή εκτός της κλάσης χρησιμοποιώντας τη σύνταξη ClassName.Variable_Name . Γραμμή αποτυχίας # 7 & 8. Αποθήκευση, μεταγλώττιση και εκτέλεση. Παρατηρήστε την έξοδο.
Value of a = 0Value of b = 1Value of a = 0Value of b = 2Value of a = 0Value 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 " increment ".
Τι είναι το Static Block στην Java;
Το στατικό μπλοκ είναι ένα μπλοκ δήλωσης μέσα σε μια κλάση Java που θα εκτελεστεί όταν μια κλάση φορτώνεται για πρώτη φορά στο JVM. Ένα στατικό μπλοκ βοηθά στην αρχικοποίηση των μελών στατικών δεδομένων , όπως και οι κατασκευαστές που βοηθούν στην προετοιμασία των μελών παρουσίας.
class Test{static {//Code goes here}}
Το ακόλουθο πρόγραμμα είναι το παράδειγμα του java static block.
Παράδειγμα: Τρόπος πρόσβασης στατικού μπλοκ
επίδειξη δημόσιας τάξης {στατικό int a;στατικό int b;στατικός {a = 10;b = 20;}δημόσιος στατικός κενός κενός (String args []) {System.out.println ("Τιμή a =" + a);System.out.println ("Τιμή b =" + b);}}
θα λάβετε την ακόλουθη έξοδο του προγράμματος.
Value of a = 10Value of b = 20