Junior
Nima uchun instansiya o'zgaruvchilari?
sobes.tech AI
AIdan javob
Instance variables (ob'ektga tegishli o'zgaruvchilar) - bu sinfning aniq bir nusxasiga (obyektiga) tegishli o'zgaruvchilardir. Har bir obyekt uchun bu o'zgaruvchilarning o'z nusxasi yaratiladi.
- Sinf ichida, lekin metodlardan tashqarida aniqlanadi.
- Bu o'zgaruvchilar, ayniqsa, shu sinfning har qanday metodidan foydalanish mumkin.
- Ularning qiymati har bir obyekt uchun noyobdir.
- Ular sinf nusxasi yaratilganda (masalan, konstruktor yordamida) boshlanadi.
Java misoli:
public class Dog {
String name; // obyektga tegishli o'zgaruvchi
public Dog(String name) {
this.name = name;
}
public void printName() {
System.out.println("Mening ismim " + this.name);
}
}
// Nusxalar yaratish
Dog dog1 = new Dog("Buddy");
Dog dog2 = new Dog("Lucy");
// Har bir nusxaning o'z 'name' qiymati bor
dog1.printName(); // Chiqish: Mening ismim Buddy
dog2.printName(); // Chiqish: Mening ismim Lucy
Taqqoslash jadvali:
| O'zgaruvchi | Tegishli bo'lgan obyekt | Ko'rinish doirasi | Hayot sikli | Boshlash |
|---|---|---|---|---|
| Obyektga tegishli | Har bir obyekt nusxasi uchun | Obyekt ichida | Obyekt mavjud bo'lgunga qadar | Obyekt yaratilganda (konstruktor) |
| Statik (sinf) | Butun sinf uchun (hamma uchun bitta) | Sinf bo'ylab (odatda public) | Dastur tugaguncha | Sinfa yuklanganda |
| Mahalliy | Metod yoki kod blokiga tegishli | Aniqlangan metod/blok ichida | Faqat metod/blok bajarilayotgan paytda | Foydalanishdan oldin boshlash kerak |