|
14-mavzu. Java dasturlash tilida Polimorfizm. Reja: Kompilyatsiya vaqtidagi polimorfizm
|
bet | 1/3 | Sana | 25.01.2024 | Hajmi | 23,85 Kb. | | #145302 |
Bog'liq 14-mavzu
14-mavzu. Java dasturlash tilida Polimorfizm.
Reja:
Kompilyatsiya vaqtidagi polimorfizm
Ishchi vaqtdagi polimorfizm (Runtime polimorfizm)
Polimorfizm turli xil obyektlar bilan bir xil uniformada ishlash imkoniyatini beradi. Masalan, turli xil oynalar mavjud: deraza oynasi, eshik oynasi, mashina oynasi, telefon oynasi. Bularning barchasi bir biridan ishlatilish sohasi, tuzulishi, shakli bilan farq qiladi. Lekin barchasini umumiy qilib oyna deb qarash mumkin. Polimorfizm orqali bir jarayonni turli yo’llar bilan tashkillashtirishimiz mumkin. Polimorfizm so’zi yunoncha ikki so’zning birikmasidan tashkil topgan “poly”-ko’p va “morphs”-formalar. Polimorfizm ham ko’p formalar degan ma’noni anglatadi. Javada polimorfizmning ikki turi mavjud: programma kompilyatsiya bo’layotgan vaqtda sodir bo’ladigan polimorfizm (compile time polymorphism, static polymorphism) va programma ishlab turgan vaqtda sodir bo’ladigan polimorfizm (runtime polymorphism, dynamic polymorphism). Javada polimorfizm funksiyalarni qayta yuklash (overload) va qayta yozish (override) bilan amalga oshiriladi.
Kompilyatsiya vaqtidagi polimorfizm
Agar funksiya qayta yuklansa (overload) bu-(compile time polimorfizmga) kompilyatsiya vaqtidagi polimorfizmga misol bo’ladi. Funksiyalarni qayta yuklash haqida oldingi bo’limlarda to’xtalib o’tganmiz.
Quyidagi misolni qaraymiz:
Misol
class PolyTest{
void metodA(int num){
System.out.println ("metodA:" + num);}
void metodA(int num1, int num2){
System.out.println ("metodA:" + num1 + "," + num2);}
double metodA(double num){
System.out.println("metodA:" + num);
return num;
}}
class Test{
public static void main (String args []){
PolyTest Obj=new PolyTest();
double natija;
Obj.metodA(20);
Obj.metodA(20, 30);
natija=Obj.metodA(5.5);
System.out.println("Javob:" + natija);
}}
Natija
metodA:20
metodA:20,30
metodA:5.5
Javob:5.5
Yuqoridagi misolda, PolyTest klassning 3 ta funksiyasi bor. Uchala funksiyalarning ham nomlari bir xil—metodA, ammo funksiyalarning argumentlarida farqlar mavjud. Kompilyatsiya vaqtida kompilyator funksiyaga yuborilayotgan argumentlarning soni va ma’lumot turiga qarab kerakli funksiyani tanlab oladi. Qaysi funksiyalarni chaqirish kompilatsiya vaqtida aniqlanishi tufayli ham bu polimorfizm turi kompilyatsiya vaqtidagi polimorfizm deb nomlanadi. Kompilyatsiya vaqtidagi polimorfizm yana (Static binding) statik bog’lash, (Early binding) erta bog’lash deb ham ataladi.
|
| |