JavaRush /Kurslar /All lectures for UZ purposes /Metodlarni ortiqcha yuklash

Metodlarni ortiqcha yuklash

All lectures for UZ purposes
Daraja , Dars
Mavjud

— Salom, Amigo! Men senga metodlarni ortiqcha yuklash haqida aytib beraman.

— Ularni hattoki ortiqcha yuklash mumkinmi?! Bugun qanday kun bo'ldi axir!

— Ular bilan juda ko'p narsalarni qilish mumkin, lekin bu haqida gapirmaymiz.

— Roziman.

— Ortiqcha yuklash – bu juda oddiy operatsiya. Aslida – bu hatto metodlarga nisbatan operatsiya emas, garchi uni ba'zida qo'rqinchli so'z bilan atasalar ham – parametrik polimorfizm.

Gap shundaki, barcha metodlar sinf ichida noyob nomga ega bo'lishi kerak.

— Ha, men bu haqida bilaman.

— Aslini olganda, bu unchalik to'g'ri emas. Aniqrog'i umuman to'g'ri emas. Metod noyob nomga ega bo'lishi shart emas. Noyob bo'lishi kerak metodning nomi va parametr turlari birlashmasi. Ularni hali metodlarning imzolari deb atashadi.

Kod Tavsif
public void print();
public void print2();
Shunday mumkin. Ikki metod noyob nomlarga ega.
public void print();
public void print(int n);
Va shunday ham mumkin. Ikki metod noyob nomlarga ega (imzolar).
public void print(int n, int n2);
public void print(int n);
Hali ham noyob metodlar.
public int print(int a);
public void print(int n);
Va shunday qilib bo’lmaydi. Metodlar noyob emas, garchi turli turdagi qiymatlarni qaytarsalar ham.
public int print(int a, long b);
public long print(long b, int a);
Va shunday – mumkin. Metod parametrlar noyob.

— Qayerdadir bunday narsani ko’rganman.

— Ha. System.out.println yozganingizda, IntelliJ IDEA sizga turli parametrlar bilan o'nlab print metodlarini taklif qilib beradi. Kompilyator siz kiritgan o'zgaruvchilarga mos holda kerakli metodni aniqlaydi va aynan unga murojaat qiladi.

— Bu qiyin emas shekilli. Polimorfizm emas, lekin.

— Aniqrog'i — metodlarni qayta aniqlash emas

Aytmoqchimanki, parametrlar nomlari ahamiyatga ega emas – ularni kompilyatsiya qilish vaqtida yo'qotadi. Kompilyatsiyadan keyin metod haqida faqat uning nomi va parametr turlari ma'lum bo'ladi.

Izohlar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION