Peamine erinevus - staatiline sidumine vs dünaamiline sidumine
Programmeerimiskeeled, nagu Java ja C #, toetavad objektile orienteeritud programmeerimist (OOP). See võimaldab tarkvara ehitada objektide abil. Tarkvarasüsteemis või programmis on palju objekte. Nendel objektidel on atribuudid ja meetodid. Atribuudid kirjeldavad omadusi. Meetodid kirjeldavad toiminguid, mida objekt saab teha. Andmed edastatakse objektide kaudu meetodite abil. Nõutavad väärtused saadetakse parameetritega meetodikutsete kaudu. Tegelik meetodi rakendamine on meetodi määratluses. Meetodikõne ja meetodi määratlemise vahel on seos. Seda tuntakse siduvana. Köiteid on kahte tüüpi. Need on staatilised ja dünaamilised. Peamine erinevus staatilise sidumise ja dünaamilise sidumise vahel on see, et staatilise sidumise korral lahendatakse seondumine kompileerimise ajal, dünaamiline seondumine aga jooksmise ajal,mis on tegelik hukkamise aeg. Selles artiklis käsitletakse nende kahe sidumismehhanismi erinevust.
SISU
1. Ülevaade ja peamine erinevus
2. Mis on staatiline köitmine
3. Mis on dünaamiline köitmine
4. Staatilise ja dünaamilise sidumise sarnasused
5. Kõrvuti võrdlus - staatiline sidumine vs dünaamiline sidumine tabelina
6. Kokkuvõte
Mis on staatiline sidumine?
Sidumine on seos meetodikõne ja meetodi definitsioonide vahel.
Joonis 01: Staatiline ja dünaamiline sidumine
Vaadake allpool Java-s kirjutatud programmi.
avalik klass A {
public void meetod1 () {
System.out.println („meetod1“);
}
public void method2 () {
System.out.println („2. meetod”);
}
public staatiline void main (String args) {
A obj = uus A ();
obj.metood1 ();
obj.meetod2 ();
}
}
Vastavalt ülaltoodud programmile luuakse A-tüüpi objekt. Siis nimetatakse meetodit1 ja meetodit2. Selle meetodi tuvastamine, mis peaks käivitamist nõudma, on siduv. Lause obj.method1 () kutsub meetodit1 () ja obj.method2 () kutsub meetodit2 (). See link on siduv.
Staatilises sidumises lahendab sidumise kompilaator kompileerimise ajal. Seda tuntakse ka kui varajast sidumist. Seondumine toimub enne programmi reaalset käivitamist. Staatiline seondumine toimub meetodi ülekoormamisel. Vaadake allpool Java-s kirjutatud programmi.
avalik tühine arvutamine {
avalik tühine summa (int x, int y) {
System.out.println („Summa on“, x + y);
}
avalik tühine summa (kahekordne x, topelt y) {
System.out.println („Summa on“, x + y);
}
public staatiline void main (String args) {
Arvutus cal = uus Arvutus ();
cal.sum (2,3);
arvestuslik summa (5,1, 6,4);
}
}
Vastavalt ülaltoodud programmile rakendatakse kahe täisarvu edastamisel kahe täisarvuga meetodit. Kahe topeltväärtuse edastamisel rakendatakse kahele topeltväärtusele vastavat meetodit. See sidumisprotsess toimub koostamise ajal. Koostaja teab, et see peaks kutsuma summa meetodi koos kahe täisarvu väärtusega cal.sum (2,3). Cal (5.1.6.4) puhul kutsub see summa meetodit kahe topeltväärtusega. Kogu vajalik teave on enne käitusaega teada, seega suurendab see programmi tõhusust ja käivitamise kiirust.
Mis on dünaamiline sidumine?
Dünaamilises sidumises ei lahenda kompilaator sidumist kompileerimise ajal. Seondumine toimub tööajal. Seda tuntakse ka kui hilist sidumist. Dünaamiline sidumine toimub meetodi alistamisel. Vaadake Java-s kirjutatud programmi.
avaliku klassi kuju () {
public void draw () {
System.out.println (“Joonista kuju”);
}
}
avalik klass Circle () laiendab kuju {
public void draw () {
System.out.println (“Joonista ring”);
}
}
avaliku klassi kolmnurk () laiendab kuju {
public void draw () {
System.out.println (“Joonista kolmnurk”);
}
}
avaliku klassi test {
public staatiline void main (String args) {
Kuju s;
s = uus kuju ();
s.joonista ();
s = uus ring ();
s.joonista ();
s = uus kolmnurk ();
s.joonista ();
}
}
Vastavalt ülaltoodud programmile on klassil Shape meetod draw (). Klassiring ja klass kolmnurk laiendavad kuju klassi. Klassiring ja klassi kolmnurk võivad pärida klassi Shape atribuudid ja meetodid. Seetõttu on klassi kuju superklass või vanemklass. Klassiring ja klassikolmnurk on alamklassid või tuletatud klassid. Nendel klassidel on ka draw () meetod koos oma rakendustega. Seetõttu tühistatakse superklassis draw () meetod.
Põhimeetodil kasutatakse erinevaid objekte. Seal on kuju tüüpi võrdlusmuutuja, milleks on s. Seejärel kasutab s meetodit vastavalt konkreetsele klassile. Kompileerimise ajal viitab kompilaator ainult superklassi loosimismeetodile. Kui tegelik käivitamine algab, viib see erinevate joonistamismeetodite käivitamiseni. Esiteks osutab s kuju Shape objektile. Seetõttu kasutab see klassis Shape joonistamismeetodit. Siis osutab s osale Circle tüüpi objekt ja see kutsub klassi Circle joonistamismeetodi. Lõpuks viitab s kolmnurga tüüpi objektile ja kutsub kolmnurga klassi joonistusmeetodit. Isegi kui võrdlusmuutuja tüüp on Shape, sõltub seondumine objekti tüübist. Seda kontseptsiooni tuntakse kui dünaamilist sidumist. Teave esitatakse käitamise ajal,nii et täitmise kiirus on staatilise sidumisega võrreldes aeglasem.
Milline on staatilise ja dünaamilise sidumise sarnasus?
Mõlemad on seotud polümorfismiga, mis võimaldab objektil mitmel viisil käituda
Mis vahe on staatilise ja dünaamilise sidumise vahel?
Erinev artikkel keskel enne tabelit
Staatiline sidumine vs dünaamiline sidumine |
|
Staatiline sidumine on sidumise tüüp, mis kogub kogu funktsiooni helistamiseks kompileerimise ajal kogu vajaliku teabe. | Dünaamiline sidumine on sidumise tüüp, mis kogub kogu vajaliku teabe funktsiooni käivitamiseks tööaja jooksul. |
Köitmise aeg | |
Staatiline sidumine toimub kompileerimise ajal. | Dünaamiline seondumine toimub tööajal. |
Funktsionaalsus | |
Staatiline sidumine kasutab sidumiseks tüübiteavet. | Dünaamiline sidumine kasutab sidumise lahendamiseks objekte. |
Tegelik objekt | |
Staatiline köitmine ei kasuta köitmiseks tegelikku objekti. | Dünaamiline köitmine, sidumiseks kasutage tegelikku objekti. |
Sünonüümid | |
Staatilist sidumist tuntakse ka kui varajast sidumist. | Dünaamiline seondumine on tuntud ka kui hiline seondumine. |
Täitmine | |
Staatilises sidumises on teostuskiirus kiire. | Dünaamilise sidumise korral on täitmise kiirus väike. |
Näide | |
Staatilist sidumist kasutatakse meetodi ülekoormamisel. | Dünaamilist sidumist kasutatakse meetodi alistamisel. |
Kokkuvõte - staatiline sidumine vs dünaamiline sidumine
Meetodikõne ja meetodi määratlemise vahel on seos. Seda tuntakse siduvana. On kahte tüüpi sidumisi, mida nimetatakse staatiliseks ja dünaamiliseks sidumiseks. Staatilise sidumise ja dünaamilise sidumise erinevus seisneb selles, et staatilises sidumises lahendatakse seondumine kompileerimise ajal, dünaamiline seondumine aga jooksmise ajal, mis on tegelik täitmise aeg. Kuna nõutav teave esitatakse enne käitusaega, on staatiline seondumine dünaamilise sidumisega võrreldes kiire.
Laadige alla staatilise sidumise ja dünaamilise sidumise PDF-fail
Selle artikli PDF-versiooni saate alla laadida ja kasutada võrguühenduseta eesmärkidel, nagu tsiteeritud. Laadige PDF-versioon siit alla: Staatilise ja dünaamilise sidumise erinevus