Obyekt destruktsiyasi
Yuqoridagi bo’limda aytilganidek obyektlar “heap” tizim xotirasida joylashadi. Boshqa
manbalar singari tizim xotirasi xam chegaraga ega. Demak, obyektlar bilan ishlash mobaynida
xotirada joyni tejash maqsadida keraksiz obyektlarni muntazam o’chirib turish kerak. Aksariyat
dasturlash tillarida dasturchi keraksiz obyektlarni ochirishni o’zi nazorat qilishi va amalga
oshiruvchi dastur kodini tuzishi kerak. Java dasturlash tili keraksiz
obyektlarni ochirishni
avtomatik tizimiga ega bo’lib u
keraksiz obyektlarni to’plash
tizimi
deyiladi.
Agar obyekt dasturning biron bir o’zgaruvchisi tomonidan ssilkaga ega bo’lmasa ushbu
obyekt keraksiz xisoblanadi va keraksiz obyektlarni to’plash tizimi tomonidan o’chiriladi. Ushbu
tizim obyektlarni ssilkalarini muntazam tekshirib turadi va ssilkasi qolmagan obyektlarni
o’chirish uchun belgilaydi va o’chiradi, o’chirilgan obyektlar egallagan xotira manbalari tizimga
qaytariladi.
Masalan,
Avtomobil a = new Avtomobil();
a = null;
Dastur kodining birinchi qatorida Avtomobil obyekti yaratilib u
a
o’zgaruvchisi tomonidan
ssilka qilinmoqda. Ikkinchi qatorda
a
o’zgaruvchisi tomonidan Avtomobil obyektiga
qilinayotgan ssilka bekor qilingan. Ushbu qator bajarilgandan keyin Avtomobil obyekti ssilkasiz
qolib keraksiz obyektga aylanadi va keraksiz obyektlarni to’plash tizimi tomonidan o’chiriladi.
Takrorlash uchun savol va topshiriqlar:
1.
Obyektlarga ixtisoslashgan dasturlashning afzalliklari nimalardan iborat?
2.
Klass deganda nima tushuniladi?
3.
Klass qanday e’lon qilinadi?
4.
Metod nima vazifani bajaradi?
5.
Metod qayerda e’lon qilinadi?
6.
Lokal o’zgaruvchi deganda nima tushuniladi?
7.
Obyekt qanday va nima asosida yaratiladi?
8.
Obyekt qachon o’chiriladi?