Sobes.tech
Junior

Τι είναι οι μεταβλητές στιγμής;

sobes.tech AI

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

Οι μεταβλητές στιγμιότυπου (instance variables) είναι μεταβλητές που ανήκουν σε μια συγκεκριμένη περίπτωση (αντικείμενο) μιας κλάσης. Για κάθε αντικείμενο δημιουργείται ένα δικό του αντίγραφο αυτών των μεταβλητών.

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

Παράδειγμα σε Java:

public class Dog {
    String name; // μεταβλητή στιγμιότυπου

    public Dog(String name) {
        this.name = name;
    }

    public void printName() {
        System.out.println("Το όνομά μου είναι " + this.name);
    }
}

// Δημιουργία περιπτώσεων
Dog dog1 = new Dog("Buddy");
Dog dog2 = new Dog("Lucy");

// Κάθε περίπτωση έχει το δικό της 'name'
dog1.printName(); // Έξοδος: Το όνομά μου είναι Buddy
dog2.printName(); // Έξοδος: Το όνομά μου είναι Lucy

Πίνακας σύγκρισης:

Μεταβλητή Ανήκει σε Περιοχή ορατότητας Κύκλος ζωής Αρχικοποίηση
Περίπτωση Για κάθε περίπτωση (αντικείμενο) Μέσα στην περίπτωση Όσο υπάρχει η περίπτωση Κατά τη δημιουργία της περίπτωσης (κατασκευαστής)
Στατική (κλάσης) Για όλη την κλάση (μία για όλες) Σε όλη την κλάση (συνήθως public) Μέχρι το τέλος της εκτέλεσης του προγράμματος Κατά τη φόρτωση της κλάσης
Τοπική Για μια μέθοδο ή μπλοκ κώδικα Μέσα στη μέθοδο/μπλοκ όπου δηλώθηκε Μόνο κατά την εκτέλεση της μεθόδου/μπλοκ Πρέπει να αρχικοποιείται πριν από τη χρήση