Varajane sidumine ja hiline sidumine on kaks polümorfismiga seotud mõistet. Varane sidumine toimub kompileerimise ajal, hiline sidumine aga käitusel. võtme erinevus varajase ja hilise sidumise vahel on see Varajane köitmine kasutab klassiteavet meetodikõnede lahendamiseks, hiline köitmine kasutab objekti meetodikõnede lahendamiseks.
Programmeerimiskeeled, näiteks Java, toetavad objektorienteeritud programmeerimist (OOP). See on paradigma, mis võimaldab programmi või tarkvara objektide abil konstrueerida. Tarkvaras on mitu objekti. Need objektid on üksteisega ühendatud ja edastavad meetodeid kasutades sõnumeid. Igal objektil on omadused ja käitumine. Omadusi kirjeldavad omadused või atribuudid. Käitumist kirjeldatakse meetodite abil. Objektil Õpilasel võivad olla sellised omadused nagu nimi, vanus ja neid tähistavad omadused. Objekt Õpilane võib omada käitumist, näiteks õppida ja lugeda, ning seda kirjeldavad meetodid. OOP üks peamisi tugisambaid on polümorfism. See võimaldab objektil käituda mitmel viisil. Varajane sidumine ja hiline sidumine on polümorfismi kaks mõistet. Ülekoormusmeetodid ühendatakse varase sidumisega. Ülepakutud meetodid ühendatakse hilise sidumisega.
1. Ülevaade ja peamised erinevused
2. Mis on varane sidumine
3. Mis on hiline köitmine
4. Sarnasused varase ja hilise köitmise vahel
5. Võrdlus kõrvuti - varajane ja hiline köitmine tabelina
6. Kokkuvõte
Varases köites kasutatakse klassiteavet meetodikõnede lahendamiseks. Varajane seondumine toimub kompileerimise ajal. Seda tuntakse ka staatilise sidumisena. Selle protsessi käigus toimub köitmine enne programmi reaalset käivitamist. Ülekoormusmeetodid ühendatakse varase sidumisega. Vaadake allolevat programmi.
Joonis 01: arvutusklass
Joonis 02: varase köitmise põhiprogramm
Vastavalt ülaltoodud programmile sisaldab arvutusklass lisamismeetodit, mis aktsepteerib kahte täisarvu, ja teist liitmismeetodit, mis aktsepteerib kahte topeltväärtust. Põhiprogrammis luuakse tüüp Type arvutamine. Kahe täisarvu lisamisel liitmismeetodile kutsub see esile liitmismeetodi, mis aktsepteerib kahte täisarvu. Kahe topeltväärtuse lisamisel liitmismeetodile käivitab see kahele topeltväärtusele vastava meetodi. See sidumisprotsess toimub kompileerimise ajal. Kogu nõutav teave on teada enne tööaega, seega suurendab see programmi tõhusust ja täitmise kiirust.
Hilisse köitmise korral kasutatakse objekti meetodikõnede lahendamiseks. Hiline seondumine toimub käitusel. Seda tuntakse ka kui dünaamiline köitmine. Selles protsessis toimub sidumine programmi täitmisel. Ülepakutud meetodid ühendatakse hilise sidumisega. Vaadake allolevat programmi.
Joonis 03: Kujundiklass
Joonis 04: ringiklass
Joonis 05: kolmnurga klass
Joonis 06: Hilise köitmise põhiprogramm
Vastavalt ülaltoodud programmile on klassi Shape viigimeetod. Klassiring ja klassi kolmnurk laiendavad Shape klassi. Seetõttu saavad need kaks klassi Shape-klassi atribuute ja meetodeid pärida. Shape Class on põhiklass. Ringi ja kolmnurga klassid on tuletatud klassid. Klassiringil ja klassi kolmnurgal on ka joonistusmeetod oma rakendustega. Niisiis, kujundiklassi joonistusmeetod on tuletatud klasside joonistusmeetoditega tähtsusetuks.
Põhiprogrammis luuakse tüübi Shape referentsmuutuja. Kompileerimise ajal viitab koostaja ainult põhiklassi joonistamise meetodile. Kättesaadaval rakenduvad erinevad joonistusmeetodid. Esiteks osutab s tüüpi Shape objektile. Niisiis kutsutakse esile Shape klassi joonistusmeetod. Siis osutab s tüüpi Circle objektile ja see kutsub esile Circle klassi joonistusmeetodi. Lõpuks osutab s tüüpi Triangle objektile ja see kutsub joonise meetodit kolmnurga klassis. Meetodeid kutsutakse sõltuvalt objektidest. Seetõttu kasutatakse seda objekti hilise köitmise meetodiga helistamise lahendamiseks. Sidumiseks vajalik teave antakse jooksval ajal, seega on täitmise kiirus varase sidumisega võrreldes aeglasem.
Varajane sidumine vs hiline sidumine | |
Klasside teabe kasutamist protsessikõnede lahendamiseks, mis toimub kompileerimise ajal, nimetatakse varajaseks köitmiseks. | Protsessi, mille käigus objekt töötab meetodikõnede lahendamiseks ja mis toimub töö ajal, nimetatakse hiliseks köitmiseks. |
Köitmise aeg | |
Varajane köitmine toimub kompileerimise ajal. | Hiline seondumine toimub jooksuajal. |
Funktsionaalsus | |
Varajane köitmine kasutab klassiteavet meetodikõnede lahendamiseks. | Hiline köitmine kasutab objekti meetodikõnede lahendamiseks. |
Sünonüümid | |
Varajast köitmist nimetatakse ka staatiliseks köitmiseks ... | Hiline sidumine on tuntud ka kui dünaamiline sidumine. |
Esinemine | |
Ülekoormusmeetodid ühendatakse varase sidumisega. | Ülepakutud meetodid ühendatakse hilise sidumisega. |
Täitmise kiirus | |
Varase sidumise korral on täitmise kiirus kiirem. | Hiline sidumine on täitmise kiirus väiksem. |
OOP-d kasutatakse tarkvara arendamisel tavaliselt. OOP üks peamisi tugisambaid on polümorfism. Varajane sidumine ja hiline köitmine on sellega seotud. Varajane seondumine toimub kompileerimise ajal, hiline sidumine aga käitusel. Meetodi ülekoormamisel toimub sidumine varase sidumisega. Meetodi ülimuslikkuse korral toimub sidumine hilise sidumisega. Varase ja hilise köitmise erinevus seisneb selles, et varajane köitmine kasutab klassiteavet meetodikõnede lahendamiseks, samas kui hiline köitmine kasutab objekti meetodikõnede lahendamiseks..
1.Java Intervjuu 04 - staatiline köitmine ja dünaamiline köitmine, Mahika õpetused, 27. detsember 2017. Saadaval siin
2.Dünaamilise meetodi dispetš Java | Core Java õpetus | Õppeaeg. Saadaval siin