Негізгі айырмашылық – Java-дағы шамадан тыс жүктеу және қайта анықтау
Объектіге бағытталған бағдарламалау (OOP) бағдарламалық жасақтаманы әзірлеудегі негізгі парадигма болып табылады. Бұл сыныптар мен объектілерді пайдалана отырып, бағдарламаны жобалау әдістемесі. Сынып - бұл жоспар. Ол нысанда не болуы керек екенін сипаттайды. Ол сипаттарды немесе атрибуттарды және нысан тұруы керек әдістерді анықтайды. Демек, объект класс данасы болып табылады. Бұл объектілер басқа объектілермен байланысады. OOP негізгі тұжырымдамаларының бірі - полиморфизм. Бұл объектінің бірнеше жолмен әрекет ету қабілеті. Полиморфизм шамадан тыс жүктелетін және қайталанатын екі бөлімге бөлінеді. Бұл мақалада Java тіліндегі осы екеуінің айырмашылығы талқыланады. Java тіліндегі шамадан тыс жүктеу мен қайта анықтаудың негізгі айырмашылығы мынада: «Жүктеу» - әртүрлі іске асырулары бар бір аттың бірнеше әдістерін жасау мүмкіндігі және қайта анықтау - суперсыныпта бұрыннан бар қосалқы сынып әдісі үшін іске асыруды қамтамасыз ету.
Java-да шамадан тыс жүктеу дегеніміз не?
Төтенше жүктеу – әртүрлі іске асырулары бар бір аттың бірнеше әдістерін жасау мүмкіндігі. Төмендегі Java кодын қараңыз.
01-сурет: Аргументтердің әртүрлі санымен шамадан тыс жүктеуді түсіндіретін Java бағдарламасы
Жоғарыдағы бағдарламаға сәйкес, А сыныбы бірдей атаумен екі әдісті қамтиды. Бірінші қосынды әдісінің екі параметрі бар. Екінші қосынды әдісінің үш параметрі бар. А типті нысанды құру және sum(2, 3) шақыру кезінде ол sum(int a, int b) болып табылатын екі параметрмен sum әдісін шақырады және 5 қайтарады. А түріндегі нысанды жасау және sum(2) шақыру, 3, 4), ол қосынды (int a, int b, int c) болып табылатын үш параметрі бар басқа сома әдісін шақырады және 9 мәнін қайтарады.
Әдіс атауы бірдей, бірақ параметрлер саны әртүрлі. Бір объектінің басқаша әрекет ететінін байқауға болады. Бұл тұжырымдама шамадан тыс жүктеме ретінде белгілі. Ол сондай-ақ статикалық байланыстыру немесе құрастыру уақыты полиморфизмі деп аталады.
Әртүрлі деректер түрлерімен шамадан тыс жүктелуі мүмкін. Төмендегі Java кодын қараңыз.
02-сурет: Әр түрлі аргументтермен шамадан тыс жүктеуді түсіндіретін Java бағдарламасы
Жоғарыдағы бағдарламаға сәйкес А класы бірдей атаумен екі әдістен тұрады. sum(int a, int b) әдісі екі бүтін мәнді алады. Қосынды (қос а қос b) екі қос мәнді алады. А типті объектіні құру және sum(2, 3) деп шақырғанда, ол sum(int a, int b) деп шақырады және 5 мәнін қайтарады. sum(3.4, 5.6) деп шақырған кезде ол sum(double double) деп атайды. b) және 9.0 мәнін қайтарыңыз. Бұл мысалда әдістердің атауы бірдей, бірақ айнымалылардың басқа түрі бар. Бұл да шамадан тыс жүктелуде.
Java тіліндегі қайта анықтау дегеніміз не?
Java тілінде бұрыннан бар сыныптармен ішкі сыныптарды құруға болады. Жаңа классты басынан жасаудың орнына, бұрыннан бар сыныптың қасиеттері мен әдістерін пайдалануға болады. Қолданыстағы класс - бұл суперкласс, ал туынды класс - ішкі сынып. Ішкі сынып жоғарғы сыныпта бұрыннан бар әдіс үшін іске асыруды қамтамасыз еткенде, ол қайта анықтау ретінде белгілі. Төмендегі Java бағдарламасын қараңыз.
03-сурет: қайта анықтауға арналған Java бағдарламасы
Жоғарыдағы бағдарламаға сәйкес, А сыныбында дисплей әдісі бар. В класы А класынан тарайды, сондықтан А класының қасиеттері мен әдістеріне В класы қол жеткізе алады. B сыныбында арнайы іске асыру бар display() әдісі бар. А типті нысанды жасағанда және көрсету әдісін шақырғанда, ол В шығысын береді. А класында көрсету әдісі болса да, ол В сыныбының көрсету әдісінен бас тартылады. Ішкі сынып суперсыныпта бұрыннан бар әдісті енгізуде.
Бұл концепция полиморфизмнің бір түрі және қайта анықтау ретінде белгілі. Оны кеш байлау, динамикалық байланыстыру, орындалу полиморфизмі деп те атайды.
Java тіліндегі шамадан тыс жүктеу мен қайта анықтаудың қандай ұқсастықтары бар?
- Екеуі де полиморфизмнің түрі.
- Шамадан тыс жүктеу және қайта анықтау кезінде әдістердің аты бірдей болады.
Java тіліндегі шамадан тыс жүктеу мен қайта анықтаудың айырмашылығы неде?
Шамадан тыс жүктелу және Java тіліндегі қайта анықтау |
|
Java-да шамадан тыс жүктеу – әртүрлі іске асырулары бар бір аттың бірнеше әдістерін жасау мүмкіндігі. | Java-да қайта анықтау суперсыныпта бұрыннан бар әдіс үшін ішкі сынып әдісінде арнайы енгізуді қамтамасыз етеді. |
Параметрлер | |
Шамадан тыс жүктеу кезінде әдістердің аты бірдей, бірақ параметрлер саны басқа немесе басқа параметрлер түрі болады. | Басқа анықтау кезінде әдістердің аты бірдей және параметрлері бірдей болуы керек. |
Тақырыптар | |
Сынып ішінде шамадан тыс жүктелу орын алады. | Басқа анықтау мұрагерлік қатынасы бар екі сынып ішінде орын алады. |
Синонимдер | |
Артық жүктелу құрастырылған уақыт полиморфизмі деп аталады. | Басқа анықтау орындалу уақытының полиморфизмі деп аталады. |
Қорытынды – Java тіліндегі шамадан тыс жүктеу және қайта анықтау
Полиморфизм – нысанға бағытталған бағдарламалаудағы негізгі ұғым. Ол объектінің бірнеше жолмен әрекет ету мүмкіндігін қамтамасыз етеді. Бұл шамадан тыс жүктелу немесе қайта анықтау болуы мүмкін. Шамадан тыс жүктеу - компиляция уақытының полиморфизмі, ал қайта анықтау - орындау уақытының полиморфизмі. Олар бағдарламалық жасақтаманы әзірлеуде пайдалы. Қайта анықтау мен шамадан тыс жүктеудің айырмашылығы мынада: Шамадан тыс жүктеу – әртүрлі іске асырулары бар бір аттың бірнеше әдістерін жасау мүмкіндігі және қайта анықтау суперсыныпта бұрыннан бар әдіс үшін ішкі сынып әдісінде нақты іске асыруды қамтамасыз етеді. Java тілінде шамадан тыс жүктеуді де, қайта анықтауды да жүзеге асыруға болады.
PDF шамадан тыс жүктелу және Java тіліндегі қайта анықтау файлын жүктеп алыңыз
Сіз осы мақаланың PDF нұсқасын жүктеп алып, сілтеме жазбасына сәйкес офлайн мақсаттарда пайдалана аласыз. PDF нұсқасын мына жерден жүктеп алыңыз: Java тіліндегі шамадан тыс жүктеу және қайта анықтау арасындағы айырмашылық