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: Прилипла бумага к хлебу! Что менять? 2024, Svibanj
Anonim

Ključna razlika - statičko i dinamičko povezivanje

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

SADRŽAJ

1. Pregled i ključna razlika

2. Što je statičko vezanje

3. Što je dinamičko vezanje

4. Sličnosti između statičkog vezanja i dinamičkog vezanja

5. Usporedba usporedno - statičko vezanje nasuprot dinamičkom vezivanju u tabličnom obliku

6. Sažetak

Što je statičko vezivanje?

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

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 vezivanje

Pogledajte donji program napisan na Javi.

javni razred A {

metoda javne praznine1 () {

System.out.println ("Metoda1");

}

metoda javne praznine2 () {

System.out.println (“Metoda2”);

}

javna statička void glavna (String args) {

A obj = novo A ();

obj.method1 ();

obj.method2 ();

}

}

Prema gornjem programu stvara se objekt tipa A. Tada se pozivaju metoda1 i metoda2. Identificiranje metode koju treba pozvati na izvršenje poznato je kao vezivanje. Izjava obj.method1 () pozvat će method1 (), a obj.method2 () pozvat će method2 (). Ova poveznica je obvezujuća.

U statičkom vezivanju, vezivanje u vrijeme kompajliranja rješava kompajler. Također je poznato kao rano vezivanje. Vezivanje se događa prije nego što se program stvarno pokrene. Statično se vezanje događa kod preopterećenja metode. Pogledajte donji program napisan na Javi.

izračun javne praznine {

javna praznina (int x, int y) {

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

}

javna praznina (dvostruki x, dvostruki y) {

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

}

javna statička void glavna (String args) {

Izračun kal = novi Izračun ();

kal.sum (2,3);

kal.sum (5.1, 6.4);

}

}

Prema gore navedenom programu, pri prosljeđivanju dviju cijelih brojeva, pozvat će se metoda s dvije cijele brojke. Pri prosljeđivanju dviju dvostrukih vrijednosti pozvat će se metoda koja odgovara dvjema dvostrukim vrijednostima. Ovaj postupak vezivanja događa se u vrijeme sastavljanja. Prevoditelj 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 zbroja s dvije dvostruke vrijednosti. Sve potrebne informacije poznate su prije izvođenja, tako da povećavaju učinkovitost programa i brzinu izvršenja.

Što je dinamičko povezivanje?

U Dynamic Binding kompajler ne razrješava vezivanje u vrijeme kompajliranja. Vezanje se događa u vrijeme izvođenja. Poznato je i kao kasno vezivanje. Dinamičko vezanje događa se u nadjačavanju metode. Pogledajte program napisan na Javi.

oblik javne klase () {

izvlačenje javne praznine () {

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

}

}

javni razred Circle () proširuje Shape {

izvlačenje javne praznine () {

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

}

}

trokut javne klase () proširuje oblik {

izvlačenje javne praznine () {

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

}

}

test javne klase {

javna statička void glavna (String args) {

Oblik s;

s = novi oblik ();

s.crtaj ();

s = novi krug ();

s.crtaj ();

s = novi trokut ();

s.crtaj ();

}

}

Prema gornjem programu, klasa Shape ima metodu draw (). Razredni krug i razredni trokut proširuju klasu Oblik. Krug klase i razred Trokut mogu naslijediti atribute i metode klase Oblik. Stoga je klasa Oblik super klasa ili roditeljska klasa. Razredni krug i trokut razreda podrazredi su ili izvedene klase. Ove klase također imaju metodu draw () s vlastitim implementacijama. Stoga je metoda draw () u super klasi poništena.

U glavnoj metodi pozivaju se različiti objekti. Postoji referentna varijabla tipa Shape, koja je s. Zatim, s poziva metodu prema određenoj klasi. U vrijeme sastavljanja, sastavljač će uputiti samo metodu izvlačenja super klase. Kada stvarno izvršavanje započne, to će dovesti do izvršenja različitih metoda izvlačenja. Prvo, s će biti usmjereni na objekt tipa Shape. Stoga će pozvati metodu crtanja u klasi Shape. Tada će s usmjeravati objekt tipa Circle i pozivat će metodu crtanja klase Circle. Konačno, s će se odnositi na objekt tipa Triangle i pozvat će metodu crtanja u klasi Triangle. Iako je referentna varijabla tipa Shape, vezanje ovisi o tipu objekta. Ovaj koncept poznat je kao dinamičko povezivanje. Informacije se pružaju u vrijeme izvođenja,pa je brzina izvršavanja sporija u odnosu na statičko vezanje.

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

Obje su povezane s polimorfizmom koji omogućuje objektu da se ponaša na više načina

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

Diff Article Sredina prije tablice

Statičko vezanje vs dinamičko vezanje

Statičko povezivanje je vrsta povezivanja koja prikuplja sve potrebne podatke za pozivanje funkcije tijekom vremena sastavljanja. Dynamic Binding je vrsta povezivanja koja prikuplja sve potrebne podatke za pozivanje funkcije tijekom vremena izvođenja.
Vrijeme vezivanja
Statično povezivanje događa se u vrijeme sastavljanja. Dinamičko vezivanje događa se u vrijeme izvođenja.
Funkcionalnost
Statičko vezanje koristi informacije o tipu za vezivanje. Dynamic Binding koristi objekte za rješavanje za povezivanje.
Stvarni objekt
Statičko vezivanje ne koristi stvarni objekt za vezivanje. Dinamičko povezivanje, za povezivanje koristite stvarni objekt.
Sinonimi
Statično vezivanje poznato je i kao rano vezivanje. Dinamičko vezivanje poznato je i kao kasno vezivanje.
Izvršenje
Brzina izvršavanja je velika u statičkom vezivanju. Brzina izvršenja je niska u dinamičkom vezivanju.
Primjer
Statično vezanje koristi se u preopterećenju metode. Dinamičko vezanje koristi se u nadjačavanju metode.

Sažetak - Statičko vezanje vs Dinamičko vezanje

Postoji veza između poziva metode i definicije metode. Poznat je kao obvezujući. Postoje dvije vrste veza koje se nazivaju statičko i dinamičko povezivanje. Razlika između statičkog i dinamičkog vezanja je u tome što se kod statičkog vezanja rješavanje vrši u vrijeme sastavljanja, dok se dinamičko vezanje 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 izvedbi u usporedbi s dinamičkim vezivanjem.

Preuzmite PDF statičkog i dinamičkog povezivanja

Možete preuzeti PDF verziju ovog članka i koristiti je u izvanmrežne svrhe prema napomeni. Preuzmite PDF verziju ovdje: Razlika između statičkog i dinamičkog povezivanja

Preporučeno: