Razlika između statičkog i dinamičkog vezivanja

Ključna razlika - statička Vezanje vs dinamičko uvezivanje
 

Programski jezici kao što su Java i C # podržavaju objektno orijentirano programiranje (OOP). Omogućuje izgradnju softvera pomoću objekata. U softverskom sustavu ili programu postoji mnogo objekata. Ovi objekti imaju atribute i metode. Atributi opisuju karakteristike. Metode opisuju radnje koje objekt može izvesti. Podaci se prenose kroz objekte metodama. Potrebne vrijednosti šalju se putem poziva metoda s parametrima. Stvarna primjena metode nalazi se u definiciji metode. Postoji veza između poziva metode i definicije metode. Poznato je kao vezanje. Postoje dvije vrste vezivanja. Oni su statičko i dinamičko vezivanje. ključna razlika između statičkog vezivanja i dinamičkog vezivanja je to, kod statičkog vezanja, vezanje se rješava u vrijeme sastavljanja, dok se dinamičko vezivanje rješava u vremenu izvođenja, što je stvarno vrijeme izvršenja. Ovaj članak govori o razlici između ova dva mehanizma vezivanja.

SADRŽAJ

1. Pregled i ključne razlike
2. Što je statičko vezivanje
3. Što je dinamičko vezivanje
4. Sličnosti između statičkog i dinamičkog vezivanja
5. Usporedna usporedba - statičko uvezivanje vs dinamičko vezivanje u tabelarnom obliku
6. Sažetak

Što je statičko vezivanje?

Vezivanje je poveznica između poziva metode i definicija metoda.

Slika 01: Statično i dinamičko vezivanje

Pogledajte donji program napisan na Javi.

javna klasa A

javna nevažeća metoda1 ()

Sustava ( „metoda1”);

javna nevažeća metoda2 ()

Sustava ( „Method2”);

javni statički void main (String [] args)

A obj = novi A ();

obj.method1 ();

obj.method2 ();

Prema gore navedenom programu stvara se objekt tipa A. Tada se poziva metoda1 i metoda2. Utvrđivanje koje metode treba zahtijevati izvršenje poznato je i kao obvezujuće. Izjava obj.method1 () će pozvati method1 (), a obj.method2 () će pozvati method2 (). Ova je veza obvezujuća.

U statičkom vezivanju, vezanje rješava u vrijeme sastavljanja. Poznat je i kao rano vezivanje. Vezivanje se događa prije nego što se program stvarno pokrene. U preopterećenju metoda dolazi do statičkog vezivanja. Pogledajte donji program napisan na Javi.

javna nevaljana računica

javna neispravna svota (int x, int y)

System.out.println ("Zbroj je", x + y);

javna neispravna svota (dupli x, dvostruki y)

System.out.println ("Zbroj je", x + y);

javni statički void main (String [] args)

Kalkulacija kal = nova Kalkulacija ();

cal.sum (2,3);

kal.sum (5,1, 6,4);

Prema gore navedenom programu, prilikom prolaska dvaju cjelobrojnih brojeva, poziva se metoda s dva cijela broja. Pri donošenju dviju dvostrukih vrijednosti pozivaće se metoda koja odgovara dvjema dvostrukim vrijednostima. Taj se postupak vezivanja događa u vrijeme sastavljanja. Kompajler zna da bi trebao pozvati metodu zbroja s dvije cjelobrojne vrijednosti za cal.sum (2,3). Za cal (5.1,6.4) pozvat će metodu zbrajanja s dvije dvostruke vrijednosti. Sve potrebne informacije su poznate prije izvođenja, tako da se povećava učinkovitost programa i brzina izvršavanja.

Što je dinamičko vezivanje?

U Dynamic Binding-u, prevodilac ne rješava vezanje u vrijeme prevođenja. Vezanje se događa u vrijeme izvođenja. Poznat je i kao kasno vezivanje. Dinamičko vezivanje se događa u prevladavanju metoda. Pogledajte program napisan na Javi.

javna klasa Shape ()

javno nevažeće izvlačenje ()

System.out.println ("Nacrtaj oblik");

Circle javna klasa () proširuje oblik

javno nevažeće izvlačenje ()

System.out.println ("Crtanje kruga");

Trokut javne klase () produžava oblik

javno nevažeće izvlačenje ()

System.out.println ("Crtanje trokuta");

test javne klase

javni statički void main (String [] args)

Oblik s;

s = novi oblik ();

s.draw ();

s = novi krug ();

s.draw ();

s = novi trokut ();

s.draw ();

Prema gornjem programu, klasa Shape ima metodu draw (). Klasa Krug i klasa Trokut proširuje klasu oblika. Krug klase i trokut klase mogu naslijediti atribute i metode klase Oblik. Stoga je klasa Shape klasa super klase ili roditelja. Krug klasa i trokut klase su podklase ili izvedene klase. Te klase također imaju draw () metodu s vlastitim implementacijama. Stoga je metoda draw () u super klasici prevladana.

U glavnoj se metodi pozivaju različiti objekti. Postoji referentna varijabla tipa Oblik, koja je s. Zatim poziva s metodom prema određenoj klasi. U vrijeme sastavljanja prevoditelj će se pozivati ​​samo na metodu crtanja super klase. Kada započne stvarno izvršenje, to će dovesti do izvršenja različitih metoda izvlačenja. Prvo, s će ukazivati ​​na objekt tipa Oblik. Stoga će se pozvati metoda izvlačenja u klasi Oblik. Tada će s pokazivati ​​objekt tipa Circle i pozvat će metodu crtanja klase Circle. Konačno, s će se odnositi na objekt tipa Triangle, a pozvat će metodu crtanja u klasi Triangle. Iako je referentna varijabla tipa Shape, vezanje ovisi o vrsti objekta. Ovaj je koncept poznat pod nazivom Dinamičko vezivanje. Podaci se daju u toku izvođenja, pa je brzina izvođenja sporija u odnosu na statičko vezivanje.

Kakva je sličnost između statičkog i dinamičkog vezivanja?

  • Oboje su povezani s polimorfizmom koji omogućuje da se objekt ponaša na više načina.

Koja je razlika između statičkog i dinamičkog vezivanja?

Statično uvezivanje vs dinamičko uvezivanje

Statičko uvezivanje je vrsta vezivanja koja prikuplja sve potrebne informacije za pozivanje funkcije tijekom vremena sastavljanja. Dinamičko vezanje je vrsta vezivanja koja prikuplja sve potrebne informacije za pozivanje funkcije tijekom vremena izvođenja.
 Vrijeme vezanja
Statičko vezanje se događa u vrijeme sastavljanja. Dinamičko vezivanje događa se u vrijeme izvođenja.
funkcionalnost
Statičkim uvezivanjem koristi se vrsta informacija za vezanje. Dinamičko vezanje koristi objekte da bi se moglo povezati.
 Stvarni objekt
Statički vezanje ne koristi stvarni objekt za vezanje. Dinamičko uvezivanje, koristite stvarni objekt za vezanje.
sinonimi
Statičko vezivanje poznato je i kao rano vezanje. Dinamičko vezivanje je također poznato kao kasno vezivanje.
Izvršenje
Brzina izvršenja je brza u statičkom vezivanju. Brzina izvršenja je kod dinamičkog vezanja mala.
Primjer
U preopterećenju metoda koristi se statičko vezivanje. Dinamičko vezivanje koristi se u prevladavanju metoda.

Sažetak - Statički Vezanje vs dinamičko uvezivanje 

Postoji veza između poziva metode i definicije metode. Poznato je kao vezanje. Postoje dvije vrste vezivanja koje se nazivaju statičko vezivanje i dinamičko vezanje. Razlika između statičkog vezanja i dinamičkog vezanja je u tome što se kod statičkog vezanja vezanje rješava u vrijeme prevođenja, dok se dinamičko vezanje rješava u vremenu izvođenja, što je stvarno vrijeme izvršenja. Kako su potrebne informacije pružene prije vremena izvođenja, statičko vezanje je brzo u izvedbi u odnosu na dinamičko vezanje.

Preuzmite PDF statičkog vezanja vs dinamičkog uvezivanja

Možete preuzeti PDF verziju ovog članka i koristiti je za izvanmrežne svrhe, prema napomeni. Molimo preuzmite PDF verziju ovdje: Razlika između statičkog i dinamičkog uvezivanja

Referenca:

1.Java Intervju 04 - Statično uvezivanje Vs dinamičko uvezivanje, Mahika Vodiči, 27. prosinca 2017. Dostupno ovdje