Junior — Middle
Ποια είναι η διαφορά μεταξύ των πεδίων μιας κλάσης και των τοπικών μεταβλητών μέσα σε μεθόδους στη Java;
sobes.tech AI
Απάντηση από AI
Οι πεδία της κλάσης (μεταβλητές στιγμής ή στατικά πεδία) και οι τοπικές μεταβλητές μέσα σε μεθόδους στη Java διαφέρουν ως προς το πεδίο ορατότητας, τον χρόνο ζωής και τον χώρο αποθήκευσης:
-
Πεδία κλάσης:
- Δηλώνονται μέσα στην κλάση, αλλά έξω από τις μεθόδους.
- Αποθηκεύονται στο αντικείμενο (αν δεν είναι στατικά) ή στην περιοχή της κλάσης (αν είναι στατικά).
- Διατηρούν την τιμή τους μεταξύ των κλήσεων μεθόδων.
- Είναι προσβάσιμα από διαφορετικές μεθόδους της κλάσης (ανάλογα με το επίπεδο πρόσβασης).
-
Τοπικές μεταβλητές:
- Δηλώνονται μέσα σε μια μέθοδο.
- Υπάρχουν μόνο κατά την εκτέλεση της μεθόδου.
- Αποθηκεύονται στην στοίβα κλήσεων.
- Δεν είναι προσβάσιμες εκτός της μεθόδου στην οποία δηλώνονται.
Παράδειγμα:
public class Example {
int field = 10; // πεδίο κλάσης
public void method() {
int localVar = 5; // τοπική μεταβλητή
System.out.println(field + localVar);
}
}
Εδώ, το field διατηρεί την κατάσταση του αντικειμένου, ενώ το localVar υπάρχει μόνο κατά την εκτέλεση της μεθόδου method.