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

Galvenā atšķirība - statiska Iesiešana vs dinamiskā iesiešana
 

Programmēšanas valodas, piemēram, Java un C #, atbalsta Object Oriented Programming (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 apraksta raksturlielumus. Metodes apraksta darbības, kuras var veikt objekts. Dati tiek nodoti caur objektiem, izmantojot metodes. Nepieciešamās vērtības tiek nosūtītas, izmantojot metožu izsaukumus ar parametriem. Faktiskā metodes ieviešana ir metodes definīcijā. Starp metodes izsaukumu un metodes definīciju ir saikne. Tas ir pazīstams kā saistošs. Ir divu veidu stiprinājumi. Tās ir statiskas un dinamiskas iesiešanas. galvenā atšķirība starp statisko un dinamisko saistīšanu tas ir, statiskā iesiešanā 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 apskatīta atšķirība starp šiem diviem saistošajiem mehānismiem.

SATURS

1. Pārskats un galvenās atšķirības
2. Kas ir statiskā iesiešana
3. Kas ir dinamiskā iesiešana
4. Līdzības starp statisko iesiešanu un dinamisko iesiešanu
5. Salīdzinājums blakus - statiskā iesiešana vs dinamiskā iesiešana tabulas formā
6. Kopsavilkums

Kas ir statiskā iesiešana?

Iesiešana ir saikne starp metodes izsaukumu un metodes definīcijām.

01. attēls. Statiskā iesiešana un dinamiskā iesiešana

Skatiet zemāk Java rakstīto programmu.

sabiedriskā klase A

public void method1 ()

System.out.println (“Metode1”);

public void method2 ()

System.out.println (“2. metode”);

public static void main (stīgas [] args)

A obj = jauns A ();

obj.metode1 ();

obj.metode2 ();

Saskaņā ar iepriekšminēto programmu tiek izveidots A tipa objekts. Tad tiek saukta metode1 un metode2. Identificēšana, kurai metodei vajadzētu izsaukt izpildi, ir saistoša. Paziņojums obj.method1 () izsauks metodi1 () un obj.method2 () izsauks metodi2 (). Šī saite ir saistoša.

Statiskā iesiešanā iesiešanu kompilācijas laikā atrisina saistīšana. To sauc arī par agrīna iesiešana. Iesiešana notiek pirms programmas faktiskās palaišanas. Statiska saistīšana notiek metodes pārslodzē. Skatiet zemāk Java rakstīto programmu.

publisks spēkā neesošs aprēķins

publiskā spēkā neesošā summa (int x, int y)

System.out.println (“Summa ir”, x + y);

publiskā tukšā summa (dubultā x, dubultā y)

System.out.println (“Summa ir”, x + y);

public static void main (stīgas [] args)

Aprēķins cal = jauns aprēķins ();

kalcija (2,3);

kalcija (5.1., 6.4.);

Saskaņā ar iepriekšminēto programmu, kad tiek pārsniegti divi veseli skaitļi, tiks izmantota metode ar diviem veseliem skaitļiem. Kad tiek pārsūtītas divas dubultās vērtības, tiks izmantota metode, kas atbilst divām dubultvērtībām. Šis iesiešanas process notiek kompilācijas laikā. Kompilators zina, ka tai vajadzētu izsaukt summas metodi ar divām vesels skaitļa vērtībām cal (2,3). Par cal (5.1,6.4) tas izsauks summu metodi ar divām divkāršām vērtībām. Visa nepieciešamā informācija ir zināma pirms izpildlaika, tāpēc tas palielina programmas efektivitāti un izpildes ātrumu.

Kas ir dinamiskā iesiešana?

Dinamiskajā iesiešanā kompilators neatrisina saistīšanu kompilācijas laikā. Iesiešana notiek izpildes laikā. To sauc arī par vēlu iesiešana. Dinamiska iesiešana notiek metodes pārsvarā. Skatiet programmu, kas rakstīta Java.

sabiedriskās klases forma ()

public void draw ()

System.out.println (“Zīmēt formu”);

sabiedriskās klases aplis () paplašina formu

public void draw ()

System.out.println (“Draw aplis”);

sabiedriskās klases trīsstūris () paplašina formu

public void draw ()

System.out.println (“Zīmēt trīsstūri”);

sabiedriskās klases pārbaude

public static void main (stīgas [] args)

Formas;

s = jaunā forma ();

s.draw ();

s = jauns aplis ();

s.draw ();

s = jauns trīsstūris ();

s.draw ();

Saskaņā ar iepriekšminēto programmu klases Shape ir metodes izloze (). Klases aplis un klases trīsstūris paplašina formas klasi. Klases aplis un klases trīsstūris var mantot klases formas atribūtus un metodes. Tāpēc klases forma ir superklase vai vecāku klase. Klases aplis un klases trīsstūris ir apakšklases vai atvasinātas klases. Šajās klasēs ir arī draw () metode ar savām ieviešanām. Tāpēc superklases izlozes () metode tiek ignorēta.

Pamatmetodē tiek izsaukti dažādi objekti. Pastāv formas tipa atsauces mainīgais, kas ir s. Pēc tam s izsauc metodi atbilstoši konkrētajai klasei. Apkopošanas laikā kompilators atsaucas tikai uz superklases izlozes metodi. Kad sākas faktiskā izpilde, tas novedīs pie dažādu izlozes metožu izpildes. Pirmkārt, s norādīs uz Shape tipa objektu. Tāpēc Shape klasē tā izmantos izlozes metodi. Tad s norādīs apļa tipa objektu, un tas izsauks apļa klases izlozes metodi. Visbeidzot, s atsauksies uz trīsstūra tipa objektu, un tas izsauks zīmēšanas metodi trīsstūra klasē. Pat ja atsauces mainīgais ir formas Shape, saistīšana notiek atkarībā no objekta veida. Šī koncepcija ir pazīstama kā dinamiskā iesiešana. Informācija tiek sniegta izpildes laikā, tāpēc izpildes ātrums ir lēnāks, salīdzinot ar statisko iesiešanu.

Kāda ir līdzība starp statisko iesiešanu un dinamisko iesiešanu?

  • Abas tās ir saistītas ar polimorfismu, kas objektam ļauj izturēties vairākos veidos.

Kāda ir atšķirība starp statisko iesiešanu un dinamisko iesiešanu?

Statiskā iesiešana vs dinamiskā iesiešana

Statiskā iesiešana ir sasaistes veids, kas apkopo visu nepieciešamo informāciju, lai izsauktu funkciju kompilēšanas laikā. Dinamiskā iesiešana ir iesiešanas veids, kas apkopo visu nepieciešamo informāciju, lai izsauktu funkciju izpildes laikā.
 Iesiešanas laiks
Statiskā saistīšana notiek kompilēšanas laikā. Dinamiska iesiešana notiek izpildes laikā.
Funkcionalitāte
Statiskā iesiešana saistīšanai izmanto informāciju par tipu. Dinamiskā iesiešana izmanto objektus, lai tos saistītu.
 Faktiskais objekts
Statiskā iesiešanā neizmanto faktisko objektu. Dinamiska iesiešana - iesiešanai izmantojiet faktisko objektu.
Sinonīmi
Statisko saistīšanu sauc arī par agrīno saistīšanu. Dinamiskā saistīšana ir pazīstama arī kā vēlīnā saistīšana.
Izpilde
Statiskajā iesiešanā izpildes ātrums ir ātrs. Dinamiskā iesiešanā izpildes ātrums ir mazs.
Piemērs
Metodes pārslodzē tiek izmantota statiskā saistīšana. Metodes ignorēšanā tiek izmantota dinamiskā iesiešana.

Kopsavilkums - statisks Iesiešana vs dinamiskā iesiešana 

Starp metodes izsaukumu un metodes definīciju ir saikne. Tas ir pazīstams kā saistošs. Pastāv divu veidu stiprinājumi, ko sauc par statisko iesiešanu un dinamisko iesiešanu. Atšķirība starp statisko saistīšanu un dinamisko saistīšanu ir tāda, ka statiskā saistīšanas gadījumā 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 ātri izpildīta, salīdzinot ar dinamisko saistīšanu.

Lejupielādējiet statiskās iesiešanas vs dinamiskās iesiešanas PDF failu

Varat lejupielādēt šī raksta PDF versiju un izmantot to bezsaistes vajadzībām, kā norādīts citēšanas piezīmē. Lūdzu, lejupielādējiet PDF versiju šeit: Atšķirība starp statisko iesiešanu un dinamisko iesiešanu

Atsauce:

1.Java Intervija 04 - Statiskā iesiešana un dinamiskā iesiešana, Mahika konsultācijas, 2017. gada 27. decembris. Pieejams šeit