Galvenā atšķirība - statiskā saistīšana pret dinamisko saistīšanu
Programmēšanas valodas, piemēram, Java un C #, atbalsta objektorientēto programmēšanu (OOP). Tas ļauj veidot programmatūru, izmantojot objektus. Programmatūras sistēmā vai programmā ir daudz objektu. Šiem objektiem ir atribūti un metodes. Atribūti raksturo īpašības. Metodes apraksta darbības, kuras objekts var veikt. Dati tiek nodoti caur objektiem, izmantojot metodes. Nepieciešamās vērtības tiek nosūtītas, izmantojot metodes izsaukumus ar parametriem. Faktiskā metodes ieviešana ir metodes definīcijā. Ir saikne starp metodes izsaukumu un metodes definīciju. Tas ir pazīstams kā saistošs. Ir divu veidu stiprinājumi. Tie ir statiski un dinamiski saistīti. Galvenā atšķirība starp statisko saistīšanu un dinamisko saistīšanu ir tāda, ka statiskā saistīšana saistīšana tiek atrisināta sastādīšanas laikā, savukārt dinamiskā saistīšana tiek atrisināta izpildes laikā,kas ir faktiskais izpildes laiks. Šajā rakstā ir aplūkota atšķirība starp šiem diviem saistošajiem mehānismiem.
SATURS
1. Pārskats un galvenās atšķirības
2. Kas ir statiskā saistīšana
3. Kas ir dinamiskā saistīšana
4. Statiskās un dinamiskās saistīšanas līdzības
5. Blakus salīdzinājums - Statiskā saistīšana pret dinamisko saistīšanu tabulas formā
6. Kopsavilkums
Kas ir statiskā saistīšana?
Saistīšana ir saikne starp metodes izsaukumu un metodes definīcijām.
01. attēls: Statiskā un dinamiskā saistīšana
Skatiet zemāk Java valodā rakstīto programmu.
publiskā klase A {
public void method1 () {
System.out.println (“1. metode”);
}
public void method2 () {
System.out.println (“2. metode”);
}
public static void main (String args) {
A obj = jauns A ();
obj.metode1 ();
obj.metode2 ();
}
}
Saskaņā ar iepriekš minēto programmu tiek izveidots A tipa objekts. Tad tiek izsauktas metode1 un metode2. Identificēšana, kurai metodei vajadzētu izsaukt izpildi, ir pazīstama kā saistoša. Paziņojums obj.method1 () izsauks metodi1 () un obj.method2 () izsauks metodi2 (). Šī saite ir saistoša.
Statiskā saitē saistīšanu kompilators atrisina kompilēšanas laikā. To sauc arī par agrīnu saistīšanu. Saistīšana notiek, pirms programma faktiski darbojas. Statiskā saistīšana notiek metodes pārslodzes gadījumā. Skatiet zemāk Java valodā rakstīto programmu.
public void Aprēķins {
public void summa (int x, int y) {
System.out.println (“Summa ir“, x + y);
}
public void summa (dubultā x, dubultā y) {
System.out.println (“Summa ir“, x + y);
}
public static void main (String args) {
Aprēķins cal = jauns Aprēķins ();
cal.sum (2,3);
cal.sum (5,1, 6,4);
}
}
Saskaņā ar iepriekš minēto programmu, nododot divus veselos skaitļus, tiks izsaukta metode ar diviem veseliem skaitļiem. Pārejot divas dubultvērtības, tiks izmantota metode, kas atbilst divām dubultvērtībām. Šis saistošais process notiek sastādīšanas laikā. Sastādītājs zina, ka tai vajadzētu izsaukt summas metodi ar divām veselu skaitļu vērtībām cal.sum (2,3). Attiecībā uz cal (5.1,6.4) tā izsauks summas metodi ar divām dubultvērtībām. Visa nepieciešamā informācija ir zināma pirms izpildlaika, tāpēc tā palielina programmas efektivitāti un izpildes ātrumu.
Kas ir dinamiskā saistīšana?
Programmā Dinamiskā iesiešana kompilators neatrisina saistīšanu kompilēšanas laikā. Saistīšanās notiek izpildes laikā. Tas ir pazīstams arī kā novēlota saistīšana. Dinamiskā saistīšana notiek, ignorējot metodi. Skatiet programmu, kas rakstīta Java valodā.
sabiedrības klases forma () {
public void draw () {
System.out.println (“Zīmēt formu”);
}
}
publiskā klase Circle () paplašina Shape {
public void draw () {
System.out.println (“Zīmēt apli”);
}
}
sabiedrības klases trīsstūris () paplašina formu {
public void draw () {
System.out.println (“Zīmēt trīsstūri”);
}
}
publiskās klases tests {
public static void main (String args) {
Formas;
s = jauna forma ();
s.zīmēt ();
s = jauns aplis ();
s.zīmēt ();
s = jauns trīsstūris ();
s.zīmēt ();
}
}
Saskaņā ar iepriekšminēto programmu Shape klasei ir metode draw (). Klases aplis un klases trīsstūris paplašina formas klasi. Klases aplis un klases trīsstūris var mantot klases Shape atribūtus un metodes. Tāpēc klases forma ir super klase vai vecāku klase. Klases aplis un klases trīsstūris ir apakšklases vai atvasinātas klases. Šīm klasēm ir arī draw () metode ar savām realizācijām. Tāpēc superklasē zīmēšanas () metode tiek ignorēta.
Galvenajā metodē tiek izmantoti dažādi objekti. Ir formas formas atsauces mainīgais, kas ir s. Tad s izsauc metodi atbilstoši konkrētajai klasei. Kompilēšanas laikā kompilators atsauksies tikai uz superklases izlozes metodi. Kad sākas faktiskā izpilde, tas novedīs pie dažādu zīmēšanas metožu izpildes. Pirmkārt, s norādīs uz Shape tipa objektu. Tāpēc tā izmantos zīmēšanas metodi formas klasē. Tad s būs vērsts uz apļa tipa objektu, un tas izsauks apļa klases zīmēšanas metodi. Visbeidzot, s atsauksies uz trīsstūra tipa objektu, un tas izmantos zīmēšanas metodi trīsstūra klasē. Lai gan atsauces mainīgais ir Shape tipa, saistīšana notiek atkarībā no objekta veida. Šis jēdziens ir pazīstams kā dinamiskā saistīšana. Informācija tiek sniegta izpildes laikā,tāpēc izpildes ātrums ir lēnāks, salīdzinot ar statisko saistīšanu.
Kāda ir līdzība starp statisko un dinamisko saistīšanu?
Abi šie ir saistīti ar polimorfismu, kas ļauj objektam uzvesties vairākos veidos
Kāda ir atšķirība starp statisko un dinamisko saistīšanu?
Atšķirīgs raksts vidū pirms tabulas
Statiskā saistīšana pret dinamisko saistīšanu |
|
Statiskā saistīšana ir saistīšanas veids, kas apkopo visu nepieciešamo informāciju, lai sastādīšanas laikā izsauktu funkciju. | Dinamiskā iesiešana ir saistīšanas veids, kas apkopo visu nepieciešamo informāciju, lai izpildes laikā izsauktu funkciju. |
Iesiešanas laiks | |
Statiskā saistīšana notiek sastādīšanas laikā. | Dinamiskā saistīšana notiek darbības laikā. |
Funkcionalitāte | |
Statiskā iesiešana saistīšanai izmanto informāciju par tipu. | Dinamiskā iesiešana izmanto objektus, lai atrisinātu saistīšanu. |
Faktiskais objekts | |
Statiskā iesiešana saistīšanai neizmanto faktisko objektu. | Dinamiskā iesiešana, saistīšanai izmantojiet faktisko objektu. |
Sinonīmi | |
Statiskā saistīšana ir pazīstama arī kā agrīna saistīšana. | Dinamiskā saistīšana ir pazīstama arī kā novēlota saistīšanās. |
Izpilde | |
Izpildes ātrums ir ātrs statiskā saitē. | Izpildes ātrums ir mazs dinamiskajā iesiešanā. |
Piemērs | |
Metodes pārslodzē tiek izmantota statiskā saistīšana. | Dinamiskā saistīšana tiek izmantota metodes ignorēšanā. |
Kopsavilkums - statiskā saistīšana pret dinamisko saistīšanu
Ir saikne starp metodes izsaukumu un metodes definīciju. Tas ir pazīstams kā saistošs. Ir divu veidu sasaistes, ko sauc par statisko un dinamisko saistīšanu. Atšķirība starp statisko saistīšanu un dinamisko saistīšanu ir tāda, ka statiskā saistīšana saistīšana tiek atrisināta sastādīšanas laikā, savukārt dinamiskā saistīšana tiek atrisināta izpildes laikā, kas ir faktiskais izpildes laiks. Tā kā nepieciešamā informācija tiek sniegta pirms izpildes laika, statiskā saistīšana tiek izpildīta ātri, salīdzinot ar dinamisko saistīšanu.
Lejupielādējiet statiskās saistīšanas un dinamiskās saistīšanas PDF failu
Jūs varat lejupielādēt šī raksta PDF versiju un izmantot to bezsaistes mērķiem, kā norādīts piezīmē. Lūdzu, lejupielādējiet PDF versiju šeit: Starpība starp statisko un dinamisko saistīšanu