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

Sadržaj:

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

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

Video: Razlika između statičkog uvezivanja i dinamičkog uvezivanja
Video: ALGORITAM DIJAGRAM TOKA 2024, Srpanj
Anonim

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

Programski jezici kao što su Java i C podržavaju objektno orijentirano programiranje (OOP). Omogućuje izgradnju softvera pomoću objekata. Postoji mnogo objekata u softverskom sustavu ili programu. Ovi objekti imaju atribute i metode. Atributi opisuju karakteristike. Metode opisuju radnje koje objekt može izvesti. Podaci se kroz objekte prosljeđuju pomoću metoda. Tražene vrijednosti se šalju putem poziva metode s parametrima. Stvarna implementacija metode je u definiciji metode. Postoji veza između poziva metode i definicije metode. Poznato je kao vezanje. Postoje dvije vrste uveza. Oni su statički uvez i dinamički uvez. Ključna razlika između statičkog i dinamičkog povezivanja je ta što se kod statičkog povezivanja povezivanje rješava u vrijeme kompilacije, dok se dinamičko povezivanje rješava u vrijeme izvođenja, što je stvarno vrijeme izvršenja. Ovaj članak govori o razlici između ova dva mehanizma vezivanja.

Što je statičko uvezivanje?

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

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

Slika 01: Statičko uvezivanje i dinamičko uvezivanje

Pogledajte donji program napisan u Javi.

javna klasa A{

javna void metoda1(){

System.out.println(“Metoda1”);

}

javna void metoda2(){

System.out.println(“Method2”);

}

public static void main(String args){

A obj=novi A();

obj.method1();

obj.method2();

}

}

Prema gornjem programu kreira se objekt tipa A. Zatim se pozivaju metoda1 i metoda2. Identificiranje metode koja bi trebala pozvati izvršenje poznato je kao vezanje. Naredba obj.method1() će pozvati method1(), a obj.method2() će pozvati method2(). Ova veza je obvezujuća.

U statičkom povezivanju, prevoditelj rješava povezivanje u vrijeme prevođenja. Također je poznato kao rano uvezivanje. Povezivanje se događa prije nego što se program stvarno pokrene. Statičko vezivanje se događa kod preopterećenja metode. Pogledajte donji program napisan u Javi.

javni izračun nevažećih{

javni void zbroj(int x, int y){

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

}

javni void zbroj (dvostruki x, dvostruki y){

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

}

public static void main(String args){

Izračun cal=novi izračun();

cal.sum(2, 3);

cal.sum(5.1, 6.4);

}

}

Prema gornjem programu, prilikom prosljeđivanja dva cijela broja, bit će pozvana metoda s dva cijela broja. Prilikom prosljeđivanja dvije dvostruke vrijednosti, poziva se metoda koja odgovara dvjema dvostrukim vrijednostima. Ovaj proces vezivanja događa se u vrijeme kompilacije. Prevodilac zna da treba pozvati metodu zbroja s dvije vrijednosti cijelog broja za cal.sum(2, 3). Za cal(5.1, 6.4), pozvat će metodu zbroja s dvije dvostruke vrijednosti. Sve potrebne informacije poznate su prije izvođenja, što povećava učinkovitost programa i brzinu izvršenja.

Što je dinamičko uvezivanje?

U dinamičkom povezivanju kompajler ne razrješava vezivanje tijekom kompajliranja. Vezanje se događa tijekom izvođenja. Također je poznato kao kasno uvezivanje. Dinamičko vezanje događa se u nadjačavanju metode. Pogledajte program napisan u Javi.

javna klasa Shape(){

javno izvlačenje praznine(){

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

}

}

javna klasa Circle() proširuje oblik{

javno izvlačenje praznine(){

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

}

}

javna klasa Triangle() proširuje oblik{

javno izvlačenje praznine(){

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

}

}

javni razredni test{

public static 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širuju klasu Oblik. Klase Circle i klase Trokut mogu naslijediti atribute i metode klase Shape. Stoga je klasa Shape superklasa ili nadređena klasa. Klasa Krug i Klasa Trokut su potklase ili izvedene klase. Ove klase također imaju metodu draw() s vlastitim implementacijama. Stoga je metoda draw() u super klasi nadjačana.

U glavnoj metodi pozivaju se različiti objekti. Postoji referentna varijabla tipa Shape, koja je s. Zatim, s poziva metodu prema specifičnoj klasi. U vrijeme prevođenja, prevodilac ć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 na objekt tipa Circle i pozvati će metodu crtanja klase Circle. Konačno, s će se odnositi na objekt tipa Trokut i pozvati će metodu crtanja u klasi Trokut. Iako je referentna varijabla tipa Shape, vezanje ovisi o vrsti objekta. Ovaj koncept je poznat kao dinamičko uvezivanje. Informacije se daju tijekom izvođenja, tako da je brzina izvođenja sporija u usporedbi sa statičkim vezanjem.

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

Oboje je povezano s polimorfizmom koji omogućuje objektu da se ponaša na više načina

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

Statičko uvezivanje u odnosu na dinamičko uvezivanje

Statičko vezivanje je vrsta vezivanja koja prikuplja sve potrebne informacije za pozivanje funkcije tijekom vremena prevođenja. Dinamičko vezivanje je vrsta vezivanja koja prikuplja sve potrebne informacije za pozivanje funkcije tijekom vremena izvođenja.
Vrijeme uvezivanja
Statičko povezivanje događa se tijekom kompajliranja. Dinamičko vezanje događa se tijekom izvođenja.
Funkcionalnost
Statičko uvezivanje koristi informacije o vrsti za uvezivanje. Dinamičko uvezivanje koristi objekte za rješavanje vezanja.
Stvarni objekt
Statičko uvezivanje ne koristi stvarni objekt za uvezivanje. Dinamičko uvezivanje, koristite stvarni objekt za uvezivanje.
Sinonimi
Statičko uvezivanje također je poznato kao rano uvezivanje. Dinamičko uvezivanje također je poznato kao kasno uvezivanje.
Izvršenje
Brzina izvršenja je velika u statičkom povezivanju. Brzina izvršenja je niska u dinamičkom povezivanju.
Primjer
Statičko vezivanje koristi se u preopterećenju metoda. Dinamičko vezanje koristi se u nadjačavanju metode.

Sažetak – Statičko uvezivanje u odnosu na dinamičko uvezivanje

Postoji veza između poziva metode i definicije metode. Poznato je kao vezanje. Postoje dvije vrste uvezivanja koje se nazivaju statičko uvezivanje i dinamičko uvezivanje. Razlika između statičkog i dinamičkog povezivanja je u tome što se kod statičkog povezivanja povezivanje rješava u vrijeme kompajliranja, dok se dinamičko povezivanje rješava u vrijeme izvođenja, što je stvarno vrijeme izvođenja. Budući da se potrebne informacije daju prije vremena izvođenja, statičko vezanje se brzo izvodi u usporedbi s dinamičkim vezivanjem.

Preuzmite PDF statičkog uvezivanja naspram dinamičkog uvezivanja

Možete preuzeti PDF verziju ovog članka i koristiti ga za izvanmrežne svrhe prema napomeni o citatu. Ovdje preuzmite PDF verziju: Razlika između statičkog i dinamičkog uvezivanja

Preporučeni: