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

Sadržaj:

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

Video: Razlika između statičkog i dinamičkog povezivanja

Video: Razlika između statičkog i dinamičkog povezivanja
Video: Дочь посла 29 серия – анонс. 2024, Juli
Anonim

Ključna razlika – statičko uvezivanje naspram dinamičkog povezivanja

Programski jezici kao što su Java i C podržavaju objektno orijentirano programiranje (OOP). Omogućava pravljenje softvera koristeći objekte. Postoji mnogo objekata u softverskom sistemu ili programu. Ovi objekti imaju atribute i metode. Atributi opisuju karakteristike. Metode opisuju radnje koje objekt može izvršiti. Podaci se prenose kroz objekte pomoću metoda. Tražene vrijednosti se šalju putem poziva metoda s parametrima. Stvarna implementacija metode je u definiciji metode. Postoji veza između poziva metode i definicije metode. Poznato je kao vezivanje. Postoje dvije vrste vezivanja. Oni su statički i dinamički. Ključna razlika između statičkog i dinamičkog vezivanja je u tome što se kod statičkog vezivanja vezivanje rješava u vrijeme kompajliranja, 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.

Šta je statičko vezivanje?

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

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

Slika 01: Statičko i dinamičko uvezivanje

Pogledajte donji program napisan u Javi.

javna klasa A{

javna poništena metoda1(){

System.out.println(“Method1”);

}

javni poništeni metod2(){

System.out.println(“Method2”);

}

public static void main(String args){

A obj=new A();

obj.method1();

obj.method2();

}

}

Prema gore navedenom programu kreira se objekat tipa A. Tada se pozivaju metoda1 i metoda2. Utvrđivanje koji metod treba pozvati za izvršenje poznato je kao vezivanje. Izjava obj.method1() će pozvati metod1(), a obj.method2() će pozvati metod2(). Ovaj link je obavezujući.

U statičkom povezivanju, povezivanje se rješava u vrijeme kompajliranja od strane kompajlera. Poznato je i kao rano vezivanje. Vezivanje se dešava pre nego što se program zaista pokrene. Statičko vezivanje se javlja kod preopterećenja metode. Pogledajte program ispod napisan na Javi.

javni poništeni obračun{

javna poništena suma (int x, int y){

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

}

javna poništena suma (duplo x, duplo y){

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

}

public static void main(String args){

Calculation cal=new Calculation();

cal.sum(2, 3);

cal.sum(5.1, 6.4);

}

}

Prema gore navedenom programu, prilikom prosleđivanja dva cela broja, biće pozvan metod sa dva cela broja. Prilikom prosljeđivanja dvije dvostruke vrijednosti, bit će pozvana metoda koja odgovara dvije dvostruke vrijednosti. Ovaj proces vezivanja se događa u vrijeme kompilacije. Kompajler zna da treba da pozove metod sum sa dve celobrojne vrednosti za cal.sum(2, 3). Za cal(5.1, 6.4), pozvat će metodu sum sa dvije dvostruke vrijednosti. Sve potrebne informacije su poznate prije runtimea, tako da povećavaju efikasnost programa i brzinu izvršavanja.

Šta je dinamičko uvezivanje?

U dinamičkom vezivanju kompajler ne rješava vezivanje u vrijeme kompajliranja. Vezivanje se događa u vrijeme izvođenja. Poznato je i kao kasno vezivanje. Dinamičko vezivanje se javlja u nadjačavanju metode. Pogledajte program napisan na Javi.

javna klasa Shape(){

javno poništeno izvlačenje(){

System.out.println(“Nacrtaj oblik”);

}

}

javna klasa Circle() proširuje oblik{

javno poništeno izvlačenje(){

System.out.println(“Nacrtaj krug”);

}

}

javna klasa Triangle() proširuje oblik{

javno poništeno izvlačenje(){

System.out.println(“Nacrtaj trougao”);

}

}

test javne klase{

public static void main(String args){

Shape s;

s=novi oblik();

s.draw();

s=novi krug();

s.draw();

s=novi trokut();

s.draw();

}

}

Prema gore navedenom programu, klasa Shape ima metodu draw(). Klasa Circle i klasa Trougao proširuju klasu Shape. Klasa Circle i klasa Triangle mogu naslijediti atribute i metode klase Shape. Stoga je klasa Shape super klasa ili roditeljska klasa. Class Circle i Class Triangle su podklase ili izvedene klase. Ove klase takođe imaju metodu draw() sa sopstvenim implementacijama. Stoga je metoda draw() u super klasi poništena.

U glavnom metodu, različiti objekti se pozivaju. Postoji referentna varijabla tipa Shape, a to je s. Zatim, s poziva metodu prema specifičnoj klasi. U vrijeme kompajliranja, kompajler će uputiti samo metodu crtanja super klase. Kada stvarno izvršenje počne, to će dovesti do izvršenja različitih metoda izvlačenja. Prvo, s će pokazivati na objekt tipa Shape. Stoga će pozvati metodu crtanja u klasi Shape. Tada će s pokazivati objekt tipa Circle, i pozvati će metodu crtanja klase Circle. Konačno, s će se odnositi na objekt tipa Trougao i pozvati će metodu crtanja u klasi Triangle. Iako je referentna varijabla tipa Shape, vezanje ovisi o tipu objekta. Ovaj koncept je poznat kao dinamičko povezivanje. Informacije se daju u toku rada, tako da je brzina izvršenja sporija u poređenju sa statičkim povezivanjem.

Koja je sličnost između statičkog i dinamičkog povezivanja?

Oboje se odnose na polimorfizam koji dozvoljava objektu da se ponaša na više načina

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

Statičko uvezivanje vs Dinamičko vezivanje

Static Binding je tip vezivanja koji prikuplja sve potrebne informacije za pozivanje funkcije tokom vremena kompajliranja. Dynamic Binding je tip povezivanja koji prikuplja sve potrebne informacije za pozivanje funkcije tokom vremena rada.
Vrijeme vezivanja
Statičko povezivanje se javlja u vrijeme kompajliranja. Dinamičko vezivanje se javlja u vremenu izvođenja.
Funkcionalnost
Static Binding koristi informacije o tipu za uvezivanje. Dynamic Binding koristi objekte za rješavanje da bi se vezalo.
Stvarni objekt
Statičko uvezivanje ne koristi stvarni objekt za uvezivanje. Dinamičko uvezivanje, koristite stvarni objekt za uvezivanje.
Sinonimi
Statično vezivanje je takođe poznato kao rano vezivanje. Dinamičko uvezivanje je također poznato kao kasno uvezivanje.
Izvršenje
Brzina izvršenja je velika u statičkom povezivanju. Brzina izvršenja je mala u dinamičkom povezivanju.
Primjer
Statičko vezivanje se koristi u preopterećenju metoda. Dynamic binding se koristi u nadjačavanju metoda.

Sažetak – Statičko vezivanje naspram dinamičkog povezivanja

Postoji veza između poziva metode i definicije metode. Poznato je kao vezivanje. Postoje dvije vrste povezivanja koje se nazivaju statičko i dinamičko povezivanje. Razlika između statičkog i dinamičkog vezivanja je u tome što se kod statičkog vezivanja vezivanje rješava u vrijeme kompajliranja, dok se dinamičko vezivanje rješava u vremenu izvođenja, što je stvarno vrijeme izvršenja. Kako se potrebne informacije pružaju prije vremena izvođenja, statičko vezivanje je brzo u izvršenju u poređenju sa dinamičkim.

Preuzmite PDF Static Binding vs Dynamic Binding

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

Preporučuje se: