Pagkakaiba sa pagitan ng Static Binding at Dynamic Binding

Talaan ng mga Nilalaman:

Pagkakaiba sa pagitan ng Static Binding at Dynamic Binding
Pagkakaiba sa pagitan ng Static Binding at Dynamic Binding

Video: Pagkakaiba sa pagitan ng Static Binding at Dynamic Binding

Video: Pagkakaiba sa pagitan ng Static Binding at Dynamic Binding
Video: HOW TO SET UP L4D2 2024, Hulyo
Anonim

Mahalagang Pagkakaiba – Static Binding vs Dynamic Binding

Mga programming language gaya ng Java at C ay sumusuporta sa Object Oriented Programming (OOP). Pinapayagan nito ang pagbuo ng software gamit ang mga bagay. Mayroong maraming mga bagay sa isang software system o isang programa. Ang mga bagay na ito ay may mga katangian at pamamaraan. Inilalarawan ng mga katangian ang mga katangian. Ang mga pamamaraan ay naglalarawan ng mga aksyon na maaaring gawin ng bagay. Ang data ay ipinapasa sa pamamagitan ng mga bagay gamit ang mga pamamaraan. Ang mga kinakailangang halaga ay ipinadala sa pamamagitan ng mga tawag sa pamamaraan na may mga parameter. Ang aktwal na pagpapatupad ng pamamaraan ay nasa kahulugan ng pamamaraan. Mayroong link sa pagitan ng isang method call at method definition. Ito ay kilala bilang binding. Mayroong dalawang uri ng mga binding. Ang mga ito ay static na binding at dynamic na binding. Ang pangunahing pagkakaiba sa pagitan ng static na binding at dynamic na binding ay, sa static na binding, ang binding ay naresolba sa compile time habang ang dynamic na binding ay naresolba sa run time, na siyang aktwal na oras ng pagpapatupad. Tinatalakay ng artikulong ito ang pagkakaiba sa pagitan ng dalawang mekanismong ito na nagbubuklod.

Ano ang Static Binding?

Ang pagbubuklod ay ang link sa pagitan ng isang method call at mga kahulugan ng method.

Pagkakaiba sa pagitan ng Static Binding at Dynamic Binding
Pagkakaiba sa pagitan ng Static Binding at Dynamic Binding

Figure 01: Static Binding at Dynamic Binding

I-refer ang program sa ibaba na nakasulat sa Java.

pampublikong klase A{

public void method1(){

System.out.println(“Paraan1”);

}

public void method2(){

System.out.println(“Paraan2”);

}

public static void main(String args){

A obj=bagong A();

obj.method1();

obj.method2();

}

}

Ayon sa programa sa itaas, isang bagay na may uri A ay nilikha. Pagkatapos method1 at method2 ay tinatawag. Ang pagtukoy kung aling paraan ang dapat tumawag para sa pagpapatupad ay kilala bilang binding. Ang pahayag na obj.method1() ay tatawag sa method1() at ang obj.method2() ay tatawag sa method2(). Ang link na ito ay may bisa.

Sa static na binding, nireresolba ng compiler ang binding sa oras ng compile. Kilala rin ito bilang early binding. Nangyayari ang pagbubuklod bago aktwal na tumakbo ang isang programa. Ang static na pagbubuklod ay nangyayari sa paraan ng overloading. Sumangguni sa program sa ibaba na nakasulat sa Java.

public void Calculation{

public void sum(int x, int y){

System.out.println(“Ang kabuuan ay “, x+y);

}

public void sum(double x, double y){

System.out.println(“Ang kabuuan ay “, x+y);

}

public static void main(String args){

Ccalculation cal=bagong Calculation();

cal.sum(2, 3);

cal.sum(5.1, 6.4);

}

}

Ayon sa programa sa itaas, kapag ipinapasa ang dalawang integer, ang paraan na may dalawang integer ay ipapatawag. Kapag nagpapasa ng dalawang dobleng halaga, ang paraan na nauugnay sa dalawang dobleng halaga ay ipapatawag. Ang proseso ng pagbubuklod na ito ay nangyayari sa oras ng pagsasama-sama. Alam ng compiler na dapat itong tumawag ng sum method na may dalawang integer value para sa cal.sum(2, 3). Para sa cal(5.1, 6.4), tatawagin nito ang sum method na may dalawang dobleng halaga. Ang lahat ng kinakailangang impormasyon ay alam bago ang runtime, kaya pinapataas nito ang kahusayan ng programa at bilis ng pagpapatupad.

Ano ang Dynamic Binding?

Sa Dynamic Binding hindi niresolba ng compiler ang binding sa oras ng compile. Nagaganap ang pagbubuklod sa oras ng pagtakbo. Ito ay kilala rin bilang late binding. Nagaganap ang Dynamic na Binding sa pag-overriding ng pamamaraan. Sumangguni sa program na nakasulat sa Java.

public class Shape(){

public void draw(){

System.out.println(“Gumuhit ng hugis”);

}

}

public class Circle() extends Shape{

public void draw(){

System.out.println(“Gumuhit ng bilog”);

}

}

public class Triangle() extends Shape{

public void draw(){

System.out.println(“Gumuhit ng tatsulok”);

}

}

pagsusulit sa pampublikong klase{

public static void main(String args){

Hugis s;

s=bagong Hugis();

s.draw();

s=bagong Circle();

s.draw();

s=bagong Triangle();

s.draw();

}

}

Ayon sa programa sa itaas, ang Class Shape ay may method draw(). Ang Class Circle at class Triangle ay nagpapalawak ng Shape class. Maaaring magmana ng Class Circle at class Triangle ang mga katangian at pamamaraan ng Class Shape. Samakatuwid, ang class Shape ay ang super class o parent class. Ang Class Circle at Class Triangle ay mga sub class o derived na klase. Ang mga klase na ito ay mayroon ding draw() na pamamaraan na may sariling mga pagpapatupad. Samakatuwid, ang paraan ng draw() sa super class ay na-override.

Sa pangunahing paraan, iba't ibang bagay ang ginagamit. Mayroong reference na variable ng Uri ng Hugis, na s. Pagkatapos, s invokes ang pamamaraan ayon sa partikular na klase. Sa oras ng pag-compile, ire-refer lang ng compiler ang super class draw method. Kapag nagsimula ang aktwal na pagpapatupad, hahantong ito sa pagpapatupad ng iba't ibang paraan ng pagguhit. Una, ituturo ni s ang object ng uri ng Shape. Samakatuwid, i-invoke nito ang paraan ng pagguhit sa klase ng Shape. Pagkatapos ay ituturo ng s ang object ng uri ng Circle, at ito ay mag-invoke ng draw method ng Circle class. Sa wakas, ang s ay tumutukoy sa object ng uri ng Triangle, at ito ay hihingin ng paraan ng pagguhit sa Triangle class. Kahit na ang reference na variable ay nasa uri ng Hugis, ang pagbubuklod ay nangyayari na nakadepende sa uri ng bagay. Ang konseptong ito ay kilala bilang Dynamic Binding. Ang impormasyon ay ibinibigay sa oras ng pagtakbo, kaya ang bilis ng pagpapatupad ay mas mabagal kumpara sa static na binding.

Ano ang Pagkakatulad sa pagitan ng Static Binding at Dynamic Binding?

Ang parehong mga ito ay nauugnay sa isang polymorphism na nagpapahintulot sa isang bagay na kumilos sa maraming paraan

Ano ang Pagkakaiba sa pagitan ng Static Binding at Dynamic Binding?

Static Binding vs Dynamic Binding

Ang Static Binding ay ang uri ng binding na nangongolekta ng lahat ng kinakailangang impormasyon para tumawag ng function sa oras ng pag-compile. Ang Dynamic Binding ay ang uri ng binding na nangongolekta ng lahat ng kinakailangang impormasyon para tumawag ng function habang tumatakbo.
Oras ng Pagbubuklod
Ang Static Binding ay nangyayari sa oras ng pag-compile. Nagaganap ang dynamic na pagbubuklod sa oras ng pagtakbo.
Pag-andar
Static Binding ay gumagamit ng uri ng impormasyon para sa binding. Ang Dynamic na Binding ay gumagamit ng mga bagay upang lutasin upang magbigkis.
Aktwal na Bagay
Ang static na pagbubuklod ay hindi gumagamit ng aktwal na bagay para sa pagbubuklod. Dynamic na binding, gamitin ang aktwal na object para sa binding.
Synonyms
Static binding ay kilala rin bilang early binding. Dynamic na binding ay kilala rin bilang late binding.
Pagpapatupad
Ang bilis ng pagpapatupad ay mabilis sa static na binding. Ang bilis ng pagpapatupad ay mababa sa dynamic na binding.
Halimbawa
Static binding ay ginagamit sa paraan ng overloading. Ginagamit ang dynamic na binding sa pag-override ng paraan.

Buod – Static Binding vs Dynamic Binding

May link sa pagitan ng method call at method definition. Ito ay kilala bilang binding. Mayroong dalawang uri ng mga binding na tinatawag na static na binding at dynamic na binding. Ang pagkakaiba sa pagitan ng static na binding at dynamic na binding ay na sa static na binding, ang binding ay naresolba sa compile time habang ang dynamic na binding ay naresolba sa run time, na siyang aktwal na oras ng pagpapatupad. Dahil ibinibigay ang kinakailangang impormasyon bago ang oras ng pagtakbo, ang static na binding ay mabilis sa pagpapatupad kumpara sa dynamic na binding.

I-download ang PDF ng Static Binding vs Dynamic Binding

Maaari mong i-download ang PDF na bersyon ng artikulong ito at gamitin ito para sa offline na layunin ayon sa tala ng pagsipi. Paki-download ang bersyon ng PDF dito: Pagkakaiba sa pagitan ng Static Binding at Dynamic Binding

Inirerekumendang: