Sobes.tech
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.