Υπάρχει διαφορά μεταξύ της μεταβλητής στιγμιότυπου και των τοπικών μεταβλητών στην Java;


Απάντηση 1:

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

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

τάξη Foo {int instanceVar; Foo () {...} κενή γραμμή () {int localVar = 0; }} Bar κατηγορίας {Foo obj = new Foo; obj.instanceVar = 1; }}

Απάντηση 2:

Ο Ryan Alder το καλύπτει αρκετά καλά. Ανατρέξτε στην έννοια της "εμβέλειας" στην Java. Απλώς Googled, και εδώ είναι μια καλή εξήγηση ...

Πεδίο εφαρμογής των μεταβλητών στην Java - GeeksforGeeks

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

Είναι ένα πλούσιο θέμα με πολλά να μάθουν, αλλά αυτός ο σύνδεσμος θα πρέπει να σας ξεκινήσει.


Απάντηση 3:

Υπάρχουν σημαντικές διαφορές μεταξύ των δύο μεταβλητών:

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

Οι τοπικές μεταβλητές είναι:

  1. Καθορίζονται μέσα σε πεδίο εφαρμογής της μεθόδου και υπάρχουν μόνο κατά την εκτέλεση αυτής της μεθόδου. Είναι προσιτά μόνο από το σημείο δήλωσης μέχρι το τέλος της μεθόδου.