Διαφορά μεταξύ στατικών και τελικών σε Java

Συγγραφέας: Laura McKinney
Ημερομηνία Δημιουργίας: 2 Απρίλιος 2021
Ημερομηνία Ενημέρωσης: 17 Ενδέχεται 2024
Anonim
Java Multithreading : AtomicReference, ScheduledExecutorService и монада Either. Многопоточность.
Βίντεο: Java Multithreading : AtomicReference, ScheduledExecutorService и монада Either. Многопоточность.

Περιεχόμενο


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

  1. Συγκριτικό διάγραμμα
  2. Ορισμός
  3. Βασικές διαφορές
  4. συμπέρασμα

Συγκριτικό διάγραμμα

Βάση σύγκρισηςΣτατικόςΤελικός
ΕφαρμόσιμοςΗ στατική λέξη-κλειδί ισχύει για την ένθετη στατική κλάση, τις μεταβλητές, τις μεθόδους και το μπλοκ.Η τελική λέξη-κλειδί ισχύει για την κλάση, τις μεθόδους και τις μεταβλητές.
ΑρχικοποίησηΔεν είναι υποχρεωτική η αρχικοποίηση της στατικής μεταβλητής κατά τη στιγμή της δήλωσής της.Είναι υποχρεωτική η προετοιμασία της τελικής μεταβλητής κατά τη στιγμή της δήλωσής της.
ΤροποποίησηΗ στατική μεταβλητή μπορεί να επανενεργοποιηθεί εκ νέου.Δεν είναι δυνατή η εκ νέου ενεργοποίηση της τελικής μεταβλητής.
ΜέθοδοιΟι στατικές μέθοδοι μπορούν να έχουν πρόσβαση μόνο στα στατικά μέλη της κλάσης και μπορούν να καλούνται μόνο με άλλες στατικές μεθόδους.Οι τελικές μέθοδοι δεν μπορούν να κληρονομηθούν.
ΤάξηΔεν μπορεί να δημιουργηθεί αντικείμενο static classs και περιέχει μόνο στατικά μέλη.Μια τελική τάξη δεν μπορεί να κληρονομείται από καμία τάξη.
ΟΙΚΟΔΟΜΙΚΟ ΤΕΤΡΑΓΩΝΟΤο στατικό μπλοκ χρησιμοποιείται για την αρχικοποίηση των στατικών μεταβλητών.Η τελική λέξη-κλειδί δεν υποστηρίζει κανένα τέτοιο μπλοκ


Ορισμός της στατικής

Το Static είναι μια λέξη-κλειδί, που ισχύει για τις κλάσεις, τις μεταβλητές, τις μεθόδους και τα μπλοκ. Τα μέλη της τάξης, η τάξη και τα μπλοκ μπορούν να γίνουν στατικά χρησιμοποιώντας μια "στατική" λέξη-κλειδί μπροστά από το όνομα των μελών της τάξης, της τάξης και των μπλοκ αντίστοιχα. Όταν ένα μέλος κλάσης κηρύσσεται ως στατικό, καθίσταται σφαιρικό για όλα τα άλλα μέλη της τάξης. Το στατικό μέλος της κλάσης δεν καταλαμβάνει μνήμη ανά περίπτωση, δηλαδή όλα τα αντικείμενα μοιράζονται το ίδιο αντίγραφο του στατικού μέλους. Το στατικό μέλος μπορεί να χρησιμοποιηθεί ανεξάρτητα από οποιοδήποτε αντικείμενο αυτής της τάξης. Μπορείτε να αποκτήσετε πρόσβαση στο στατικό μέλος της κλάσης πριν δημιουργηθεί το αντικείμενο. Το καλύτερο παράδειγμα του στατικού μέλους είναι η μέθοδος main (), δηλώνεται στατική έτσι ώστε να μπορεί να χρησιμοποιηθεί πριν να υπάρχει κάποιο αντικείμενο. Η γενική μορφή πρόσβασης στο στατικό μέλος της κατηγορίας:


class_name.static_member // πρόσβαση σε στατικό μέλος της κλάσης

Στο παραπάνω κώδικα class_name είναι το όνομα της κλάσης στην οποία ορίζεται το static_member. Το στατικό μέλος μπορεί να είναι μια στατική μεταβλητή ή στατική μέθοδος

Στατικές μεταβλητές:

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

Στατικές μέθοδοι:

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

Στατική κατηγορία:

  • Η Java έχει την έννοια της ένθετης στατικής κλάσης. Η εξώτατη κλάση δεν μπορεί να γίνει στατική ενώ η εσωτερική τάξη μπορεί να γίνει στατική.
  • Μια στατική ένθετη κλάση δεν μπορεί να έχει πρόσβαση στο μη στατικό μέλος της εξωτερικής κλάσης.
  • Μπορεί να έχει πρόσβαση μόνο στα στατικά μέλη της εξωτερικής τάξης.

Στατικό μπλοκ:

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

C ++:

Στην C + + έχουμε την έννοια των στατικών μεταβλητών καθώς και των στατικών λειτουργιών, ενώ η C ++ δεν υποστηρίζει τη στατική τάξη.

ΝΤΟ#:

Το C # υποστηρίζει επίσης τη στατική τάξη, τις στατικές μεταβλητές και τη στατική κατηγορία.

Ιάβα:

Η Java υποστηρίζει τη στατική ένθετη κλάση, τις στατικές μεταβλητές, τις στατικές μεθόδους.

Ορισμός τελικού

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

Η μέθοδος που δηλώνεται ως τελική δεν μπορεί να αντικατασταθεί από την υποκατηγορία της κλάσης στην οποία δηλώνεται η τελική μέθοδος. Όταν μια τάξη κηρύσσεται τελική, άλλη τάξη δεν μπορεί να κληρονομήσει αυτή την τελική κατηγορία. C + +, C # δεν υποστηρίζουν την έννοια αν τελική λέξη-κλειδί. Η Java υποστηρίζει την έννοια της τελικής λέξης-κλειδιού και της Java. η τάξη, η μεταβλητή και η μέθοδος μπορούν να δηλωθούν ως τελικά.

  1. Η στατική λέξη-κλειδί ισχύει για μια ένθετη στατική κλάση, μεταβλητές, μεθόδους και μπλοκ. Από την άλλη πλευρά, η τελική λέξη-κλειδί ισχύει για τις μεθόδους και τις μεταβλητές της κλάσης.
  2. Η στατική μεταβλητή μπορεί να αρχικοποιηθεί οποτεδήποτε, ενώ μια τελική μεταβλητή πρέπει να αρχικοποιηθεί κατά τη στιγμή της δήλωσης.
  3. Μια στατική μεταβλητή μπορεί να επανεγκατασταθεί, ενώ, αφού αρχικοποιηθεί, μια τελική μεταβλητή δεν μπορεί ποτέ να επανεγκατασταθεί.
  4. Μια στατική μέθοδος μπορεί να έχει πρόσβαση στο στατικό μέλος της κλάσης και μπορεί να χρησιμοποιηθεί μόνο από άλλες στατικές μεθόδους. Από την άλλη πλευρά, η τελική μέθοδος δεν μπορεί ποτέ να κληρονομηθεί από οποιαδήποτε τάξη.
  5. Στατικό μπλοκ χρησιμοποιείται για την εκκίνηση των στατικών μεταβλητών ενώ η τελική λέξη-κλειδί δεν υποστηρίζει κανένα μπλοκ.

Συμπέρασμα:

Τόσο η στατική όσο και η τελική λέξη-κλειδί επιλύουν διαφορετικούς σκοπούς όταν εφαρμόζονται σε τάξη, μεταβλητή και μέθοδο.