Στατική έναντι μη στατικής μεθόδου
Μια μέθοδος είναι μια σειρά εντολών που εκτελείται για την εκτέλεση μιας συγκεκριμένης εργασίας. Οι μέθοδοι μπορούν να λαμβάνουν εισροές και να παράγουν εκροές. Οι στατικές και οι μη στατικές μέθοδοι είναι δύο τύποι μεθόδων που υπάρχουν σε αντικειμενοστρεφείς γλώσσες προγραμματισμού. Στατική μέθοδος είναι μια μέθοδος που σχετίζεται με μια κλάση. Μια μέθοδος που σχετίζεται με ένα αντικείμενο ονομάζεται μέθοδος μη στατική (στιγμιότυπο). Στις αντικειμενοστρεφείς γλώσσες, οι μέθοδοι χρησιμοποιούνται ως μηχανισμός για τη λειτουργία δεδομένων που είναι αποθηκευμένα σε αντικείμενα.
Τι είναι μια στατική μέθοδος;
Στον αντικειμενοστραφή προγραμματισμό, η στατική μέθοδος είναι μια μέθοδος που σχετίζεται με μια κλάση. Επομένως, οι στατικές μέθοδοι δεν έχουν τη δυνατότητα να λειτουργήσουν σε μια συγκεκριμένη παρουσία μιας κλάσης. Οι στατικές μέθοδοι μπορούν να κληθούν χωρίς τη χρήση αντικειμένου της κλάσης που περιέχει τη στατική μέθοδο. Ακολουθεί ένα παράδειγμα καθορισμού μιας στατικής μεθόδου στην Java. Το στατικό πρέπει να χρησιμοποιείται κατά τον ορισμό μιας στατικής μεθόδου στην Java.
public class MyClass { public static void MyStaticMethod() { // κωδικός της στατικής μεθόδου }
}
Η στατική μέθοδος που ορίζεται παραπάνω θα μπορούσε να κληθεί ως εξής χρησιμοποιώντας το όνομα της κλάσης στην οποία ανήκει.
MyClass. MyStaticMethod();
Ένα σημαντικό πράγμα που πρέπει να σημειωθεί είναι ότι οι στατικές μέθοδοι έχουν πρόσβαση μόνο στα στατικά μέλη.
Τι είναι μια μη στατική μέθοδος;
Μια μη στατική μέθοδος ή μια μέθοδος παρουσίας είναι μια μέθοδος που σχετίζεται με ένα αντικείμενο σε μια κλάση. Επομένως, οι μη στατικές μέθοδοι καλούνται χρησιμοποιώντας ένα αντικείμενο της κλάσης στην οποία ορίζεται η μέθοδος. Μια μη στατική μέθοδος μπορεί να έχει πρόσβαση σε μη στατικά μέλη καθώς και σε στατικά μέλη μιας κλάσης. Σε πολλές αντικειμενοστρεφείς γλώσσες (όπως C++, C, Java), όταν καλείται μια μη στατική μέθοδος, το αντικείμενο που επικαλέστηκε τη μέθοδο μεταβιβάζεται ως σιωπηρό όρισμα (ονομάζεται αναφορά «αυτό»). Έτσι, μέσα στη μέθοδο αυτή η λέξη-κλειδί μπορεί να χρησιμοποιηθεί για να αναφέρεται στο αντικείμενο που κάλεσε τη μέθοδο. Ακολουθεί ένα παράδειγμα ορισμού μιας μεθόδου παρουσίας στην Java.
public class MyClass { public void MyInstanceMethod() { // κωδικός της μεθόδου παρουσίας }
}
Η μέθοδος παρουσίας που ορίστηκε παραπάνω θα μπορούσε να κληθεί ως εξής χρησιμοποιώντας ένα αντικείμενο της κλάσης στην οποία ανήκει.
MyClass objMyClass=νέα MyClass();
objMyClass. MyInstanceMethod ();
Ποια είναι η διαφορά μεταξύ στατικής και μη στατικής μεθόδου;
Οι στατικές μέθοδοι είναι μέθοδοι που σχετίζονται με μια κλάση, ενώ οι μη στατικές μέθοδοι είναι μέθοδοι που σχετίζονται με αντικείμενα μιας κλάσης. Μια κλάση πρέπει να δημιουργηθεί πρώτα για να επικαλεστεί μια μη στατική μέθοδο, αλλά οι στατικές μέθοδοι δεν έχουν αυτήν την απαίτηση. Μπορούν απλά να κληθούν χρησιμοποιώντας το όνομα της κλάσης που περιέχει τη στατική μέθοδο. Μια άλλη σημαντική διαφορά είναι ότι μια μη στατική μέθοδος συνήθως έχει μια αναφορά στο αντικείμενο που κάλεσε τη μέθοδο και μπορεί να προσπελαστεί χρησιμοποιώντας αυτήν τη λέξη-κλειδί μέσα στη μέθοδο. Αλλά αυτή η λέξη-κλειδί δεν μπορεί να χρησιμοποιηθεί σε στατικές μεθόδους, καθώς δεν σχετίζονται με ένα συγκεκριμένο αντικείμενο.