Junior — Middle
Ποια είναι η διαφορά μεταξύ μιας στατικής μεταβλητής στον προγραμματισμό και ποια χαρακτηριστικά έχει;
sobes.tech AI
Απάντηση από AI
Μια στατική μεταβλητή είναι μια μεταβλητή που ανήκει στην κλάση, όχι σε ένα συγκεκριμένο παράδειγμα του αντικειμένου. Υπάρχει σε ένα μόνο αντίγραφο για ολόκληρη την κλάση και διατηρεί την τιμή της μεταξύ των κλήσεων μεθόδων.
Χαρακτηριστικά των στατικών μεταβλητών:
- Κοινή για όλα τα αντίγραφα της κλάσης: όλα τα αντικείμενα της κλάσης μοιράζονται την ίδια στατική μεταβλητή.
- Εκκινείται μία φορά κατά τη φόρτωση της κλάσης.
- Μπορεί να προσεγγιστεί χωρίς να δημιουργηθεί αντίγραφο της κλάσης (μέσω του ονόματος της κλάσης).
- Χρησιμοποιείται για την αποθήκευση καταστάσεων ή δεδομένων κοινών σε όλα τα αντικείμενα.
Παράδειγμα σε Java:
public class Counter {
public static int count = 0;
public Counter() {
count++;
}
}
// Χρήση:
Counter c1 = new Counter();
Counter c2 = new Counter();
System.out.println(Counter.count); // Θα εμφανίσει 2
Στις δοκιμές, οι στατικές μεταβλητές μπορεί να δημιουργήσουν δυσκολίες, καθώς η κατάσταση τους διατηρείται μεταξύ των δοκιμών, κάτι που μπορεί να οδηγήσει σε ανεπιθύμητες παρενέργειες. Είναι σημαντικό να καθαρίζονται ή να απομονώνονται τα στατικά δεδομένα στις δοκιμές.