Διαφορά Μεταβλητή μεταβλητή μεταβλητή και τοπική μεταβλητή

Anonim

Μεταβλητή Instance vs Τοπική Μεταβλητή

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

Τι είναι μια μεταβλητή instance;

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

Τι είναι μια τοπική μεταβλητή;

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

Ποια είναι η διαφορά μεταξύ μεταβλητής εισόδου και τοπικής μεταβλητής;

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