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.
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
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.
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.
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. |
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.
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
1.Java Intervju 04 - Statično uvezivanje Vs dinamičko uvezivanje, Mahika Vodiči, 27. prosinca 2017. Dostupno ovdje