Obyekt konstruktsiyasi
Java dasturlash tilida obyektlar “heap” nomli tizim xotirasida joylashadi. Boshqa dasturlash
tillaridan farli o’laroq Java obyektlarni xotiraga joylashtirish va o’chirishni avtomatik
ravishda
bajaradi. Yangi obyekt yaratilganda unga xotiradan kerakli joy ajratiladi. Obyekt kerak bo’lmay
qolganda u Javaning maxsus “garbage collector” yordamida o’chirilib tashlanadi.
Obyekt
new
operatori yordamida yaratiladi klass andozasi asosida yaratiladi. Masalan,
quyidagi klass berilgan bo’lsin:
public
class Kitob
{
String kitobNomi = “1001 kecha”;
int varoqlarSoni = 324;
String muqovasi = “Qattiq”;
public void getKitobNomi()
{
return kitobNomi;
}
}
Ushbu klass andozasi asosida yangi obyekt quyidagicha yaratiladi:
Kitob k = new Kitob();
Ya’ni
Kitob
qiymatini qabul qiluvchi
k
o’zgaruvchisiga
new
operatori yordamida yangi Kitob
obyekti yaratilib biriktirilgan.
Java dasturlash tilida obyektlar obyekt konstruktori yordamida yaratiladi. Konstruktor klass
ichida joylashgan, klass bilan bir xil nomga ega va qiymat qaytarmaydigan maxsus metod
xisoblanadi. Ushbu maxsus metod xar doim yangi klass na’munasi, ya’ni obyekt, yaratilganda
chaqiriladi. Boshqa metodlar singari konstruktorlar qiymat qabul qilishi va qayta e’lon qilinishi
xam mumkin. Masalan,
public
class Avtomobil
{
int tezlig;
public Avtomobil()
{
this.tezlig = 200;
}
public Avtomobil(int t)
{
this.tezlig = t;
}
}
Dasturda
Avtomobil
ikkita, qiymat qabul qilmaydigan va qiymat qabul
qiladigan,
konstruktorga ega. Obyekt yaratilayotganida konstruktor argumentiga qarab kerakligi ishga
tuhiriladi. Masalan,
Avtomobil a = new Avtomobil();
Avtomobil b = new Avtomobil(250);
Birinchi xolatda
a
o’zgaruvchiga biriktirilgan
Avtomobil
obyektini tezlik o’zgaruvchisi
200
qiymatga ega bo’ladi. Ikkinchi xolatda
b
o’zgaruvchisiga biriktirilgan
Avtomobil
obyektini tezlik
o’zgaruvchisi
250
qiymatiga ega bo’ladi.
Agar klassda xech qanday konstruktor berilmagan bo’lsa kompilyator avtomatik ravishda
qiymat qabul qilmaydigan konstruktorni qo’shib beradi. Ya’ni,
public class Avtomobil
{
int tezlik;
public void getTezlik()
{
return tezlik;
}
}
dasturi quyidagi dastur bilan bir xil
public class Avtomobil
{
int tezlik;
public Avtomobil()
{
}
public void getTezlik()
{
return tezlik;
}
}
Dostları ilə paylaş: