Ključna razlika - statična vezava in dinamična vezava
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 predmetov. Ti predmeti imajo atribute in metode. Atributi opisujejo značilnosti. Metode opisujejo dejanja, ki jih lahko izvede objekt. Podatki se posredujejo skozi predmete z uporabo metod. Zahtevane vrednosti se pošljejo prek klicev metod s parametri. Dejanska izvedba 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. Ključna razlika med statično vezavo in dinamično vezavo je v tem, da se pri statični vezavi vezava razreši v času prevajanja, dinamična vezava pa v času izvajanja,kar je dejanski čas izvedbe. Ta članek obravnava razliko med tema dvema mehanizmoma vezave.
VSEBINA
1. Pregled in ključna razlika
2. Kaj je statična vezava
3. Kaj je dinamična vezava
4. Podobnosti med statično vezavo in dinamično vezavo
5. Vzporedna primerjava - statična vezava in dinamična vezava v tabelarni obliki
6. Povzetek
Kaj je statična vezava?
Vezava je povezava med klicem metode in definicijami metode.
Slika 01: Statična vezava in dinamična vezava
Oglejte si spodnji program, napisan v Javi.
javni razred A {
public void method1 () {
System.out.println (“Metoda1”);
}
metoda javne void2 () {
System.out.println (“Metoda2”);
}
public static void main (String args) {
A obj = novo A ();
obj.method1 ();
obj.method2 ();
}
}
V skladu z zgornjim programom se ustvari objekt tipa A. Nato se pokličeta metoda1 in metoda2. Ugotovitev, katero metodo je treba izvesti, je znana kot vezava. Izjava obj.method1 () bo poklicala method1 (), obj.method2 () pa method2 (). Ta povezava je zavezujoča.
Pri statični vezavi jo prevajalnik razreši v času prevajanja. Znano 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.
izračun javne praznine {
javna praznina (int x, int y) {
System.out.println (»Vsota je«, x + y);
}
javna praznina (dvojni x, dvojni y) {
System.out.println (»Vsota je«, x + y);
}
public static void main (String args) {
Izračun kal = nov izračun ();
kal.sum (2,3);
izračunana vsota (5.1, 6.4);
}
}
V skladu z zgornjim programom bo pri predaji dveh celih števil priklicana metoda z dvema celo številoma. Pri posredovanju dveh dvojnih vrednosti se prikliče metoda, ki ustreza dvema dvojnima vrednostma. Ta postopek vezave se zgodi v času sestavljanja. Prevajalnik ve, da mora za cal.sum (2,3) poklicati metodo sum z dvema celoštevilnima vrednostma. Za cal (5.1,6.4) bo poklical metodo vsote z dvema dvojnima vrednostma. Vse potrebne informacije so znane pred izvajanjem, zato povečajo učinkovitost programa in hitrost izvajanja.
Kaj je dinamična vezava?
V Dynamic Binding prevajalnik ne razreši vezave v času prevajanja. Vezava poteka v času izvajanja. Znano je tudi kot pozna vezava. Dinamična vezava se pojavi pri preglasitvi metode. Glejte program, napisan v Javi.
javni razred Shape () {
žreb za javno void () {
System.out.println (“Risanje oblike”);
}
}
javni razred Circle () podaljša obliko {
žreb za javno void () {
System.out.println (“Nariši krog”);
}
}
javni razred Triangle () razširja obliko {
žreb za javno void () {
System.out.println (“Risanje trikotnika”);
}
}
test javnega razreda {
public static void main (String args) {
Oblika s;
s = nova oblika ();
s. risanje ();
s = nov krog ();
s. risanje ();
s = nov trikotnik ();
s. risanje ();
}
}
V skladu z zgornjim programom ima razred Shape metodo draw (). Razredni krog in razred Trikotnik razširita razred Oblika. Razred Circle in razred Triangle lahko podedujeta atribute in metode razreda Shape. Zato je razred Oblika super razred ali nadrejeni razred. Krog razredov in trikotnik razredov sta podrazreda ali izpeljana 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 Shape, ki je s. Nato s prikliče metodo glede na določen razred. V času prevajanja bo prevajalnik uporabil samo metodo risanja super razreda. Ko se dejanska izvedba začne, bo privedlo do izvedbe različnih načinov risanja. Najprej bo s kazal na predmet vrste Oblika. Zato bo uporabil metodo risanja v razredu Shape. Nato bo s usmeril objekt tipa Circle in prikril metodo risanja razreda Circle. Končno se bo s skliceval na objekt vrste Triangle in pričel uporabljati metodo risanja v razredu Triangle. Čeprav je referenčna spremenljivka tipa Shape, je vezava odvisna od vrste predmeta. Ta koncept je znan kot Dynamic Binding. Informacije so na voljo v času izvajanja,zato je hitrost izvedbe počasnejša v primerjavi s statično vezavo.
Kakšna je podobnost med statičnim in dinamičnim povezovanjem?
Oba sta povezana s polimorfizmom, ki omogoča predmetu, da se vede na več načinov
Kakšna je razlika med statičnim in dinamičnim povezovanjem?
Diff Article Sredina pred mizo
Statična vezava vs Dinamična vezava |
|
Statična vezava je vrsta vezave, ki zbira vse potrebne informacije za klicanje funkcije v času prevajanja. | Dynamic Binding je vrsta vezave, ki zbira vse potrebne informacije za klic funkcije med izvajanjem. |
Čas vezave | |
Statična vezava se pojavi v času prevajanja. | Dinamična vezava se pojavi v času izvajanja. |
Funkcionalnost | |
Statična vezava za vezavo uporablja informacije o tipu. | Dynamic Binding uporablja predmete za razrešitev za vezavo. |
Dejanski objekt | |
Statična vezava za vezavo ne uporablja dejanskega predmeta. | Dinamična vezava, za vezavo uporabite dejanski objekt. |
Sopomenke | |
Statična vezava je znana tudi kot zgodnja vezava. | Dinamična vezava je znana tudi kot pozna vezava. |
Izvršitev | |
Hitrost izvedbe je pri statični vezavi hitra. | Hitrost izvedbe je pri dinamični vezavi nizka. |
Primer | |
Statična vezava se uporablja pri preobremenitvi metode. | Dinamična vezava se uporablja pri preglasitvi metode. |
Povzetek - Statična vezava vs Dinamična vezava
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 in dinamično vezavo je v tem, da se pri statični vezavi vezava reši v času prevajanja, medtem ko se dinamična vezava razreši v času izvajanja, kar je dejanski čas izvedbe. Ker so zahtevane informacije na voljo pred časom izvajanja, je statična vezava hitra v primerjavi z dinamično vezavo.
Prenesite PDF datoteke Static Binding vs Dynamic Binding
Lahko prenesete različico tega članka v PDF obliki in jo uporabite za namene brez povezave, kot je navedeno v opombi o navedbi. Prosimo, prenesite različico PDF tukaj: Razlika med statično in dinamično vezavo