RiapaMeTpbi anrmeTa


Ob'ektlarni usullarga o'tkazish


Download 399.85 Kb.
bet26/97
Sana24.12.2022
Hajmi399.85 Kb.
#1060199
1   ...   22   23   24   25   26   27   28   29   ...   97
Bog'liq
Java (Laboratoriya)

Ob'ektlarni usullarga o'tkazish
Ob'ektlar mos yozuvlar orqali usullarga o'tkaziladi, shuning uchun agar siz metoddagi ob'ekt maydonining qiymatini o'zgartirsangiz, bu o'zgarish asl ob'ektga ta'sir qiladi.
/* № 3.8 misol : uzatish yoqilgan havola : DemoRef.java */ class Point Cloneable dasturini amalga oshiradi{
xususiy int x = 1;
public int getX() { qaytish x;
}
umumiy bekor setX (int qiymati) { x = qiymat;
}
}
umumiy sinf DemoRef {
xususiy statik bekor meth (nuqta p) {
p.setX(10);
}
umumiy statik void main(String[] args) {
Nuqta nuqtasi = new Point();
System.out.println("x = " + point.getX()); uchrashdi(nuqta);
System.out.println("x = " + point.getX());
}
}
Natijada: x = 1 x = 10 bo'ladi
Xuddi shu sinfning boshqa usullaridan ba'zi sinf usullarini chaqirish ob'ekt yoki sinf nomisiz mumkin. Shuningdek, meth () usulida, mos yozuvlar p mos yozuvlar nuqtasi bilan bir xil ob'ektga ishora qiladi asosiy () usulda . Bunday holatlarga yo'l qo'ymaslik uchun siz quyidagi shakldagi usulda ob'ektning mahalliy nusxasini yaratishingiz kerak:
Point pCopy = (Point)p.clone();
Buni amalga oshirish uchun siz bo'sh Cloneable interfeysini amalga oshirishingiz kerak va uni Point sinfida bekor qilishingiz kerak. klonlash () usuli :
umumiy ob'ekt klonu()
uradi CloneNotSupportedException { super .clone();
Mantiqiy bloklar
Sinfni tavsiflashda mantiqiy bloklardan foydalanish mumkin. Mantiqiy blok - bu jingalak qavslar ichiga olingan va joriy sinfning hech qanday usuliga tegishli bo'lmagan kod.
{ /* kod */ }
Mantiqiy bloklar ko'pincha maydonni ishga tushiruvchilar sifatida ishlatiladi, lekin joriy sinfning ham, unga tegishli bo'lmaganlarning ham usullariga qo'ng'iroqlarni o'z ichiga olishi mumkin. Sinf ob'ektini yaratishda ular oddiy buyruqlar ketma-ketligi sifatida maydonlarni ishga tushirish bilan bir qatorda joylashtirish tartibi bo'yicha ketma-ket chaqiriladi va faqat oxirgi blok bajarilgandan keyin sinf konstruktori chaqiriladi. Mantiqiy blok ichidagi sinf maydonlarida bu maydon aniq e'lon qilinishidan oldin operatsiyalar faqat C++ da bo'lgani kabi joriy ob'ektga havola bo'lgan ushbu havola yordamida amalga oshiriladi .
Mantiqiy blokni statik belgilovchi bilan e'lon qilish mumkin . Bunday holda, u har doim ushbu sinfning statik usulini chaqirishdan oldin chaqiriladi.
/* № 3.9 misol: sinfni e'lon qilishda mantiqiy bloklardan foydalanish: DemoLogic . java */ public sinf DemoLogic { {
Tizim . tashqariga . println (" mantiqiy (1) x =" + bu . x );
}

Download 399.85 Kb.

Do'stlaringiz bilan baham:
1   ...   22   23   24   25   26   27   28   29   ...   97




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling