Junior
Czym są zmienne instancyjne?
sobes.tech AI
Odpowiedź od AI
Zmienne instancji to zmienne należące do konkretnego egzemplarza (obiektu) klasy. Każdemu obiektowi tworzona jest własna kopia tych zmiennych.
- Definiowane są wewnątrz klasy, ale poza metodami.
- Dostępne z dowolnej metody tej samej klasy.
- Ich wartość jest unikalna dla każdego egzemplarza obiektu.
- Inicjalizowane podczas tworzenia egzemplarza klasy (np. w konstruktorze).
Przykład w Java:
public class Dog {
String name; // zmienna instancji
public Dog(String name) {
this.name = name;
}
public void printName() {
System.out.println("Nazywam się " + this.name);
}
}
// Tworzenie egzemplarzy
Dog dog1 = new Dog("Buddy");
Dog dog2 = new Dog("Lucy");
// Każdy egzemplarz ma własne 'name'
dog1.printName(); // Wypisze: Nazywam się Buddy
dog2.printName(); // Wypisze: Nazywam się Lucy
Tabela porównawcza:
| Zmienna | Przynależność | Zakres widoczności | Cykl życia | Inicjalizacja |
|---|---|---|---|---|
| Instancji | Dla każdego egzemplarza obiektu | Wewnątrz instancji | Tak długo, jak istnieje instancja | Przy tworzeniu egzemplarza (konstruktor) |
| Statyczna (klasowa) | Dla całej klasy (jedna dla wszystkich) | Wewnątrz klasy (często publiczna) | Do końca działania programu | Przy ładowaniu klasy |
| Lokalna | Dla metody lub bloku kodu | Wewnątrz metody/bloku, w którym jest zadeklarowana | Tylko podczas wykonywania metody/bloku | Powinna być zainicjalizowana przed użyciem |