Razlika med statičnim in dinamičnim vezanjem

Ključna razlika - statična Vezava proti dinamični vezavi
 

Programski jeziki, kot sta Java in C #, podpirajo objektno orientirano programiranje (OOP). Omogoča gradnjo programske opreme z uporabo predmetov. V programskem sistemu ali programu je veliko predmetov. Ti predmeti imajo atribute in metode. Atributi opisujejo lastnosti. Metode opisujejo dejanja, ki jih lahko izvede predmet. Podatki se prenašajo skozi predmete z uporabo metod. Zahtevane vrednosti se pošljejo skozi klice metode s parametri. Dejansko izvajanje metode je v definiciji metode. Obstaja povezava med klicem metode in definicijo metode. Znana je kot vezava. Obstajata dve vrsti vezi. So statična in dinamična vezava. The ključna razlika med statično in dinamično vezavo je to, pri statični vezavi je vezava razrešena v času prevajanja, dinamična vezava pa v času izvajanja, kar je dejanski čas izvedbe. Ta članek govori o razliki teh dveh mehanizmov zavezujoče narave.

VSEBINA

1. Pregled in ključne razlike
2. Kaj je statična vezava
3. Kaj je dinamična vezava
4. Podobnosti med statično in dinamično vezavo
5. Primerjava drug ob drugem - statična vezava proti dinamični vezavi v tabeli
6. Povzetek

Kaj je statična vezava?

Vezava je povezava med klicem metode in definicijami metode.

Slika 01: Statična in dinamična vezava

Glejte spodnji program, napisan v Javi.

javni razred A

javna nična metoda1 ()

System.out.println ("metoda 1");

javna nična metoda2 ()

System.out.println ("metoda 2");

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

A obj = nov A ();

obj.method1 ();

obj.method2 ();

Po zgornjem programu se ustvari objekt tipa A. Nato se pokličeta metoda1 in metoda2. Ugotavljanje, katera metoda naj zahteva izvedbo, je znana kot zavezujoča. Izjava obj.method1 () bo poklicala method1 () in obj.method2 () bo poklicala method2 (). Ta povezava je zavezujoča.

Pri statični vezavi vezanje razreši v prevajalskem času. Znan je tudi kot zgodnja vezava. Vezava se zgodi, preden se program dejansko zažene. Pri preobremenitvi metode pride do statične vezave. Glejte spodnji program, napisan v Javi.

javni razveljavitve Izračun

javna nična vsota (int x, int y)

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

javna nična vsota (dvojni x, dvojni y)

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

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

Izračun cal = nov Izračun ();

kal.sum (2,3);

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

V skladu z zgornjim programom se pri prenosu obeh celih števil prikliče metoda z dvema celoma. Pri prenosu dveh dvojnih vrednosti se prikliče metoda, ki ustreza dvema dvojnima vrednostma. Ta postopek vezave se zgodi v času sestavljanja. Prevajalnik ve, da bi moral poklicati metodo vsote z dvema celotnima vrednostma za cal.sum (2,3). Za cal (5.1,6.4) bo poklical metodo vsote z dvema dvojnima vrednostma. Vse zahtevane informacije so znane pred izvajanjem, zato povečajo učinkovitost programa in hitrost izvajanja.

Kaj je dinamična vezava?

V Dynamic Binding prevajalnik ne odpravi vezave v času prevajanja. Vezava se pojavi v času izvajanja. Znan je tudi kot pozna vezava. Pri prevladovanju metode se pojavi dinamično vezanje. Glejte program, napisan v Javi.

javni razred Shape ()

javno neveljavno žrebanje ()

System.out.println ("Narišite obliko");

krog javnega razreda () podaljša Oblika

javno neveljavno žrebanje ()

System.out.println ("Narišite krog");

Trikotnik v javnem razredu () razširja obliko

javno neveljavno žrebanje ()

System.out.println ("Narišite trikotnik");

test javnega razreda

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

Oblika s;

s = nov Oblika ();

s.draw ();

s = nov krog ();

s.draw ();

s = nov trikotnik ();

s.draw ();

Glede na zgornji program ima razred Shape metoda draw (). Razredni krog in razred Trikotnik razširita razred Oblika. Razredni krog in razred Trikotnik lahko podedujeta atribute in metode razreda Oblika. Zato je razred Shape razred super ali staršev. Razredni krog in razred Trikotnik sta podsklada ali izvedena razreda. Ti razredi imajo tudi metodo draw () z lastnimi izvedbami. Zato je metoda draw () v super razredu razveljavljena.

V glavni metodi se prikličejo različni predmeti. Obstaja referenčna spremenljivka tipa Oblika, ki je s. Nato s prikliče metodo glede na določen razred. V času prevajanja se bo prevajalnik skliceval le na način risanja super razreda. Ko se začne dejanska izvedba, bo privedla do izvedbe različnih načinov vlečenja. Najprej s bo kazalo na predmet tipa Shape. Zato bo v razredu Shape poklical metodo risanja. Nato bo s kazal predmet na objekt Circle in priklical metodo risanja razreda Circle. Končno se bo s sklicevanjem na predmet tipa Trikotnik in priklical metodo risanja v razredu Trikotnik. Čeprav je referenčna spremenljivka tipa Shape, je vezava odvisna od vrste predmeta. Ta koncept je znan kot dinamična vezava. Informacije so na voljo v času izvajanja, zato je hitrost izvedbe počasnejša v primerjavi s statičnim vezanjem.

Kakšna je podobnost med statično in dinamično vezavo?

  • Obe sta povezani s polimorfizmom, ki objektu omogoča vedenje na več načinov.

Kakšna je razlika med statičnim in dinamičnim vezanjem?

Statična vezava vs dinamična vezava

Statična vezava je vrsta vezave, ki med časom prevajanja zbira vse potrebne informacije za klic funkcije. Dynamic Binding je vrsta vezave, ki v času izvajanja zbira vse potrebne informacije za klic funkcije.
 Čas vezave
Statična vezava se zgodi v času prevajanja. Dinamična vezava se pojavi v času izvajanja.
Funkcionalnost
Statično vezanje uporablja podatke o vrsti za vezavo. Dynamic Binding uporablja predmete za reševanje vezi.
 Dejanski predmet
Statična vezava ne uporablja dejanskega predmeta za vezavo. Dinamična vezava, za vezavo uporabite dejanski predmet.
Sinonimi
Statična vezava je znana tudi kot zgodnja vezava. Dinamična vezava je znana tudi kot pozna vezava.
Izvedba
Hitrost izvedbe je pri statični vezavi hitra. Hitrost izvedbe je pri dinamični vezavi nizka.
Primer
Pri preobremenitvi metode se uporablja statična vezava. Dinamična vezava se uporablja pri pretiravanju metod.

Povzetek - statična Vezava proti dinamični vezavi 

Obstaja povezava med klicem metode in definicijo metode. Znana je kot vezava. Obstajata dve vrsti vezi, ki se imenujeta statična in dinamična vezava. Razlika med statično vezavo in dinamično vezavo je, da se pri statični vezavi vezava razreši v času prevajanja, dinamična vezava pa v času izvajanja, kar je dejanski čas izvedbe. Ker so zahtevane informacije podane pred časom izvajanja, je statična vezava v izvedbi hitra v primerjavi z dinamično vezavo.

Prenesite PDF Static Binding vs Dynamic Binding

Lahko prenesete PDF različico tega članka in jo uporabite za namene brez povezave, kot je navedeno v navodilu. Prosimo, da si PDF različico naložite tukaj: Razlika med statično in dinamično vezavo

Referenca:

1.Java Intervju 04 - Statična vezava Vs Dynamic Binding, Mahika Vadnice, 27. december 2017. Na voljo tukaj