Sobes.tech
Intern

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

sobes.tech AI

Απάντηση από AI

Ένα πεδίο είναι μια μεταβλητή που δηλώνεται μέσα σε μια κλάση, αλλά έξω από οποιαδήποτε μέθοδο. Τα πεδία ορίζουν τις ιδιότητες του αντικειμένου της κλάσης.

Μια μεταβλητή είναι οποιοδήποτε μέρος στη μνήμη που έχει δεσμευτεί για την αποθήκευση δεδομένων ενός συγκεκριμένου τύπου. Οι μεταβλητές μπορούν να είναι:

  • Πεδία (field): δηλωμένα σε επίπεδο κλάσης.
  • Τοπικές μεταβλητές (local variable): δηλωμένες μέσα σε μια μέθοδο, κατασκευαστή ή μπλοκ.
  • Παραμέτρους μεθόδου (method parameter): δηλωμένες στην υπογραφή της μεθόδου.

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

Παράδειγμα:

class Example {
    int instanceField; // Πεδίο στιγμιότυπου

    static String staticField; // Στατικό πεδίο

    void myMethod(int parameter) { // παράμετρος μεθόδου
        int localVar = 10; // τοπική μεταβλητή
        this.instanceField = parameter;
        System.out.println(staticField + " " + localVar);
    }
}