Metodlarni ortiqcha yuklash qoidalari haqida gapirib bering.
sobes.tech AI
AIdan javob
Obyektga yo'naltirilgan dasturlashda (Method Overloading) metodlarni bir sinfda bir xil nom bilan, ammo turli imzolar bilan belgilash imkonini beradi.
Metodlarni ortiqcha yuklash uchun asosiy qoidalar:
-
Imzoda farq: Metodning imzosi, metod nomi va uning parametrlarining turlar ro'yxatini mos tartibda o'z ichiga oladi. Metodlar ortiqcha yuklangan deb hisoblanishi uchun, ularning imzolari farq qilishi kerak.
// Farq qiladigan imzolar misollari void print(int i) { } void print(String s) { } void print(int i, String s) { } void print(String s, int i) { } // Parametrlar tartibi farq qiladi -
Metod nomi bir xil bo'lishi kerak: Ortib yuklangan metodlar bir xil nomga ega bo'lishi kerak.
// To'g'ri ortiqcha yuklash misoli class Example { void process(int a) { } void process(double b) { } } -
Qaytish turi imzoning bir qismi emas: Faqat qaytish turini o'zgartirish, metodlarni ortiqcha yuklangan deb hisoblamaydi. Kompilyator, parametr imzolari teng bo'lsa, qaysi metod chaqirilishini ajrata olmaydi.
// Ortib yuklash emas - kompilyatsiya xatosi int calculate() { return 1; } String calculate() { return "error"; } -
Kirish modifikatorlari va istisno belgilovchilari ortiqcha yuklashga ta'sir qilmaydi: Qaytish turiga o'xshab, faqat kirish modifikatorlari (
public,private,protected, default) yoki chiqariladigan istisnalar ro'yxati (throws) o'zgartirilsa, ortiqcha yuklash amalga oshmaydi.// Ortib yuklash emas - kompilyatsiya xatosi, parametr imzolari teng bo'lsa public void doSomething() { } private void doSomething() { } -
Parametrlar tartibi muhim: Parametrlar turlarining tartibini o'zgartirish, imzolarni farq qiladi.
// Ortib yuklash void setup(int width, int height) { } void setup(int height, String unit) { } // Ikkinchi parametr farq qiladi void setup(String unit, int size) { } // Turi va tartibi farq qiladi -
Parametrlar soni muhim: Parametrlar sonining farqi, imzolarni farq qiladi.
// Ortib yuklash void log(String message) { } void log(String message, int level) { }
Shu sababli, metodlarni ortiqcha yuklash uchun asosiy omil, metod imzosining unikaligi, uning nomi va parametrlar to'plami (turlari va tartibi) bilan aniqlanadi.