Siz OOP da methodlar bilan ishlayotganingizda sizga Overloading va Overriding degan so’zlarga duch kelishingiz mumkin. Bu ikki tushuncha odatda methodlar bilan o’z vazifasini amalga oshiradi. Overloading va Overriding polymorphismni amalga oshirishnining keng tarqalgan usuli hisoblanadi. Biz hozir Overloading (Qayta yuklash) haqida batafsil to’xtalib o’tamiz.
Overloading ishlatilmagandagi holat
Avvaliga bir xato yo’l bilan dastur yozaylik, chunki bu tushunchalar va qayta yuklash amali nimaga kerakligini tushunish uchun avval xato yo’lni ko’ribgina xulosa olishingiz mumkin. Quyidagi dasturda 2-3-4 ta sonlardan eng kattasini topish dasturi yozilgan.
Ushbu methodlar uchun kiruvchi parametrlariga qarab nom berdik, endi yana bir o’ylab ko’ring, agar massiv yoki int toifasidagi sonlar orasidan eng kattasini topish kerak bo’lsachi, quyidagi dasturda buni ham ko’rishingiz mumkin:
Yuqorida guvoh bo’lganingizdek nom o’ylab topish va uni ishlatish sizga biroz qiyin bo’lib qolyapti, biz 2-3 ta method uchun nom oson topa olamiz, lekin 200-300 ta methodlar da xatoliklar va chigalliklar yuzaga keladi. Siz yozgan class lardagi methodlar nima amal bajarishini u class ni ishlatayotganda nechta qiymat qabul qiladi, qanday turga mansub bo’lishi kerak hammasini bilib keyingina u methodlardan foydalana olasiz. Buni qanday hal qilish mumkin?
Demak : Biz yuqorida tutgan yo’limiz xato ekanligini tushunib oldik. Siz yozgan kodlarni kompyuter tushunaveradi, lekin o’zingiz va boshqa dasturchilar qiynalib qolishlari mumkin. Endi esa to’g’ri yo’lni o’rganamiz
Overloading qo’llanilishi
Biz barcha methodlarga bir xil nom berishimiz kerak bo’ladi, qanday turdagi va nechta qiymat kirib kelishidan qat’iy nazar.
Guvohi bo’lganingizdek hamma method nomini Max ga o’zgartirdik va method overloading ni amalga oshirdik. Overloading ni qo’llaganimizdan so’ng kodlarimiz qisqaradi va yanada tushunarli bo’ladi, quyidagi dasturda yuqoridagi dasturni qisqargan holati ko’rsatib o’tilgan (Main methodiga e’tibor bering va solishtiring).
Foydalanayotganda turi va nechta qiymat qabul qilishini o’ylab o’tirmasdan, eng kattasini topuvchi method Max ekanmi, demak har qanday turdagi va har qancha qiymat ichidan eng kattasini topib beradi degan fikr paydo bo’ladi , va oson foydalanadi.
Siz nom berishda o’ylab o’tirmaysiz, vazifasi bir xil va qabul qiluvchi qiymatlari har xil bo’ladigan holatda method nomini bir nomga keltirib olasiz.
Kodlaringiz qisqaradi va yanada tushunarliroq va aniqroq bo’ladi.