Razlika med statično in dinamično vezavo

Kazalo:

Razlika med statično in dinamično vezavo
Razlika med statično in dinamično vezavo

Video: Razlika med statično in dinamično vezavo

Video: Razlika med statično in dinamično vezavo
Video: Рефакторинг: switch vs if-else vs enum vs HashMap [Шаблон "Команда"] 2024, Julij
Anonim

Ključna razlika – statična vezava v primerjavi z dinamično vezavo

Programski jeziki, kot sta Java in C, podpirajo objektno usmerjeno programiranje (OOP). Omogoča gradnjo programske opreme z uporabo predmetov. V programskem sistemu ali programu je veliko objektov. Ti objekti imajo atribute in metode. Atributi opisujejo lastnosti. Metode opisujejo dejanja, ki jih lahko izvaja predmet. Podatki se prenašajo skozi objekte z uporabo metod. Zahtevane vrednosti se pošljejo prek klicev metode s parametri. Dejanska izvedba metode je v definiciji metode. Obstaja povezava med klicem metode in definicijo metode. Znano je kot vezanje. Obstajata dve vrsti vezav. So statična vezava in dinamična vezava. Ključna razlika med statično in dinamično vezavo je v tem, da je pri statičnem povezovanju vezava razrešena v času prevajanja, medtem ko je dinamična vezava razrešena v času izvajanja, ki je dejanski čas izvajanja. Ta članek obravnava razliko med tema dvema mehanizmoma vezave.

Kaj je statična vezava?

Povezovanje je povezava med klicem metode in definicijami metode.

Razlika med statično in dinamično vezavo
Razlika med statično in dinamično vezavo

Slika 01: Statična in dinamična vezava

Glejte spodnji program, napisan v Javi.

javni razred A{

javna neveljavna metoda1(){

System.out.println(“Method1”);

}

javna neveljavna metoda2(){

System.out.println(“Method2”);

}

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 kliče k izvedbi, je znano kot povezovanje. Stavek obj.method1() bo poklical metodo1() in obj.method2() bo poklical metodo2(). Ta povezava je zavezujoča.

Pri statičnem povezovanju prevajalnik razreši povezovanje v času prevajanja. Znana je tudi kot zgodnja vezava. Vezava se zgodi, preden se program dejansko zažene. Statična vezava se pojavi pri preobremenitvi metode. Oglejte si spodnji program, napisan v Javi.

javni izračun ničelnosti{

javna prazna vsota(int x, int y){

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

}

javna neveljavna 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();

cal.sum(2, 3);

cal.sum(5.1, 6.4);

}

}

V skladu z zgornjim programom bo pri posredovanju dveh celih števil priklicana metoda z dvema celima številoma. Pri posredovanju dveh dvojnih vrednosti bo priklicana metoda, ki ustreza dvema dvojnima vrednostima. Ta postopek vezave poteka v času prevajanja. Prevajalnik ve, da bi moral poklicati metodo vsote z dvema celima vrednostma za cal.sum(2, 3). Za cal(5.1, 6.4) bo poklical metodo vsote z dvema dvojnima vrednostima. Vse zahtevane informacije so znane pred izvajanjem, kar poveča učinkovitost programa in hitrost izvajanja.

Kaj je dinamična vezava?

Pri dinamičnem povezovanju prevajalnik ne razreši vezave med prevajanjem. Vezava se pojavi med izvajanjem. Znana je tudi kot pozna vezava. Dinamična vezava se pojavi pri preglasitvi metode. Glejte program, napisan v Javi.

javni razred Shape(){

javno žrebanje praznine(){

System.out.println(“Risanje oblike”);

}

}

javni razred Circle() razširja obliko{

javno žrebanje praznine(){

System.out.println(“Risanje kroga”);

}

}

javni razred Triangle() razširja obliko{

javno žrebanje praznine(){

System.out.println(“Risanje trikotnika”);

}

}

javni preizkus razreda{

javni statični void main(String args){

Oblika s;

s=nova oblika();

s.draw();

s=nov krog();

s.draw();

s=nov trikotnik();

s.draw();

}

}

Glede na zgornji program ima razred Shape metodo draw(). Razred Circle in razred Triangle razširjata razred Shape. Razred Circle in razred Triangle lahko podedujeta atribute in metode razreda Shape. Zato je razred Shape nadrazred ali nadrejeni razred. Razredni krog in razredni trikotnik sta podrazreda ali izpeljana razreda. Ti razredi imajo tudi metodo draw() s svojimi implementacijami. Zato je metoda draw() v nadrazredu preglasena.

V glavni metodi so priklicani različni objekti. Obstaja referenčna spremenljivka tipa Shape, ki je s. Nato s prikliče metodo glede na določen razred. V času prevajanja se bo prevajalnik skliceval samo na metodo risanja nadrazreda. Ko se začne dejanska izvedba, bo vodila do izvedbe različnih metod žrebanja. Prvič, s bo kazal na objekt tipa Shape. Zato bo priklical metodo risanja v razredu Shape. Nato bo s kazal na objekt tipa Circle in bo priklical metodo risanja razreda Circle. Nazadnje se bo s skliceval na objekt tipa Trikotnik in bo 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 izvajanja počasnejša v primerjavi s statično vezavo.

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

Oboje je povezano s polimorfizmom, ki omogoča predmetu, da se obnaša na več načinov

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

Statična vezava proti dinamični

Statična vezava je vrsta vezave, ki zbira vse potrebne informacije za klic funkcije med prevajanjem. Dinamično povezovanje je vrsta povezovanja, ki zbira vse potrebne informacije za klic funkcije med izvajanjem.
Čas vezave
Statična vezava se pojavi med prevajanjem. Dinamična vezava se pojavi med izvajanjem.
Funkcionalnost
Statična vezava uporablja podatke o vrsti za vezavo. Dinamična vezava uporablja objekte za razrešitev v vezavo.
Dejanski predmet
Statična vezava ne uporablja dejanskega predmeta za vezavo. Dinamična vezava, uporabite dejanski predmet za vezavo.
Sinonimi
Statična vezava je znana tudi kot zgodnja vezava. Dinamična vezava je znana tudi kot pozna vezava.
Izvedba
Hitrost izvajanja je velika pri statični vezavi. Hitrost izvajanja je nizka pri dinamični vezavi.
Primer
Statična vezava se uporablja pri preobremenitvi metode. Dinamična vezava se uporablja pri preglasitvi metode.

Povzetek – statična vezava proti dinamični

Obstaja povezava med klicem metode in definicijo metode. Znano je kot vezanje. Obstajata dve vrsti vezav, imenovani statična in dinamična vezava. Razlika med statično in dinamično vezavo je v tem, da je pri statičnem povezovanju vezava razrešena v času prevajanja, medtem ko je dinamična vezava razrešena v času izvajanja, ki je dejanski čas izvajanja. Ker so zahtevane informacije zagotovljene pred časom izvajanja, je statična vezava hitra pri izvedbi v primerjavi z dinamično vezavo.

Prenesite PDF statične in dinamične vezave

Različico PDF tega članka lahko prenesete in jo uporabite za namene brez povezave v skladu z opombo o citiranju. Tukaj prenesite različico PDF: Razlika med statično in dinamično vezavo

Priporočena: