Atšķirība Starp Statisko Un Dinamisko Saistīšanu

Satura rādītājs:

Atšķirība Starp Statisko Un Dinamisko Saistīšanu
Atšķirība Starp Statisko Un Dinamisko Saistīšanu

Video: Atšķirība Starp Statisko Un Dinamisko Saistīšanu

Video: Atšķirība Starp Statisko Un Dinamisko Saistīšanu
Video: Kāda ir atšķirība starp dinamisko un statisko bibliotēku (statiskā un dinamiskā saistīšana) 2024, Maijs
Anonim

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.

Atšķirība starp statisko un dinamisko saistīšanu
Atšķirība starp statisko un dinamisko saistīšanu

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

Ieteicams: