Skip to main content

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

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

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

Στατικές μέθοδοι χρησιμοποιούνται συχνά σε κατηγορίες χρησιμότητας που δεν εξαρτώνται από μεταβλητές στιγμιότυπου από οποιαδήποτε συγκεκριμένη κλάση.Χρησιμοποιούνται επίσης όταν ένας προγραμματιστής πρέπει να έχει πρόσβαση στη μέθοδο, αλλά δεν υπάρχει λόγος να δημιουργηθεί η κλάση στην οποία περιέχεται σε.Θα ήταν ασυνήθιστο για μια μέθοδο χρησιμότητας να έχει την ανάγκη να τροποποιηθούν οι πληροφορίες αντικειμένων.Μια μέθοδος από την κλάση java.lang.math, όπως το POW (), θα ήταν ένα παράδειγμα του τρόπου με τον οποίο θα χρησιμοποιηθεί αυτός ο τύπος μεθόδου σε μια κλάση χρησιμότητας., και στατικές μέθοδοι.Οι στατικές μέθοδοι δεν μπορούν να αποκτήσουν άμεση πρόσβαση σε μεταβλητές στιγμιότυπων και μεθόδους εμφάνισης.Λόγω της φύσης των μεθόδων εμφάνισης που έχουν καλύτερη πρόσβαση στα μέλη της τάξης από τις στατικές μεθόδους, οι μέθοδοι εμφάνισης είναι ο τύπος των μεθόδων που χρησιμοποιούνται κανονικά στις κανονικές κατηγορίες.

Ένα σημαντικό μειονέκτημα στατικών μεθόδων εμφανίζεται κατά τη διάρκεια της κληρονομιάς όταν χρησιμοποιείται πολυμορφισμός.Όσο η μητρική στατική μέθοδος δεν έχει δηλωθεί τελική, η ίδια στατική μέθοδος μπορεί να κωδικοποιηθεί στην τάξη των παιδιών σαν να αντικατασταθεί.Αυτό ονομάζεται τεχνικά απόκρυψη αντί να υπερισχύει επειδή μια στατική μέθοδος δεν μπορεί να αντικατασταθεί.

Όταν χρησιμοποιείται η απόκρυψη, εάν η μητρική στατική μέθοδος έχει πρόσβαση χρησιμοποιώντας το όνομα της κλάσης, θα χρησιμοποιηθεί η γονική μέθοδος.Εάν έχει πρόσβαση η παρεμβαλλόμενη στατική μέθοδος παιδικής στατικής με τη χρήση του ονόματος αντικειμένου, θα χρησιμοποιηθεί η μεθόδους που υπερβαίνει το παιδί.Το πρόβλημα συμβαίνει όταν ένα παιδί αντικείμενο είναι upcast ως γονέας.Σε αυτή την περίπτωση, μια κλήση προς τη στατική μέθοδο Upcast Child θα χρησιμοποιήσει τη μέθοδο γονέων αντί της αναμενόμενης μεθόδου παιδιού.Με τον πραγματικό πολυμορφισμό, η μέθοδος του παιδιού θα ήταν αυτή που ενεργοποιήθηκε μετά από μια upcast.