Sleutelverskil – Statiese binding vs dinamiese binding
Programmeringstale soos Java en C ondersteun objekgeoriënteerde programmering (OOP). Dit laat die bou van sagteware toe met behulp van voorwerpe. Daar is baie voorwerpe in 'n sagtewarestelsel of 'n program. Hierdie voorwerpe het eienskappe en metodes. Eienskappe beskryf die eienskappe. Metodes beskryf die aksies wat deur die voorwerp uitgevoer kan word. Data word met behulp van metodes deur voorwerpe gestuur. Die vereiste waardes word deur metode-oproepe met parameters gestuur. Die werklike metode-implementering is in die metodedefinisie. Daar is 'n verband tussen 'n metode-oproep en metode-definisie. Dit staan bekend as bindend. Daar is twee tipes bindings. Hulle is statiese binding en dinamiese binding. Die belangrikste verskil tussen statiese binding en dinamiese binding is dat, in statiese binding, die binding opgelos word tydens die samestellingstyd terwyl dinamiese binding opgelos word tydens die looptyd, wat die werklike tyd van uitvoering is. Hierdie artikel bespreek die verskil tussen hierdie twee bindingsmeganismes.
Wat is statiese binding?
Binding is die skakel tussen 'n metode-oproep en metode-definisies.
Figuur 01: Statiese binding en dinamiese binding
Verwys die onderstaande program wat in Java geskryf is.
publieke klas A{
publieke nietige metode1(){
System.out.println(“Method1”);
}
public void method2(){
System.out.println(“Method2”);
}
public static void main(String args){
A obj=nuwe A();
obj.method1();
obj.method2();
}
}
Volgens bogenoemde program word 'n objek van tipe A geskep. Dan word metode1 en metode2 genoem. Om te identifiseer watter metode vir uitvoering moet vra, staan bekend as bindend. Verklaring obj.method1() sal metode1() noem en obj.method2() sal metode2() noem. Hierdie skakel is bindend.
In statiese binding word binding opgelos tydens die samestellingstyd deur die samesteller. Dit staan ook bekend as vroeë binding. Binding vind plaas voordat 'n program werklik loop. Statiese binding vind plaas in metode-oorlading. Verwys na die onderstaande program wat in Java geskryf is.
publieke leemte-berekening{
publieke leemte som(int x, int y){
System.out.println(“Som is “, x+y);
}
publieke nietige som(dubbel x, dubbel y){
System.out.println(“Som is “, x+y);
}
public static void main(String args){
Berekening cal=nuwe Berekening();
cal.sum(2, 3);
cal.sum(5.1, 6.4);
}
}
Volgens die bogenoemde program, wanneer die twee heelgetalle geslaag word, sal die metode met twee heelgetalle opgeroep word. Wanneer twee dubbelwaardes deurgegee word, sal die metode wat met twee dubbelwaardes ooreenstem, opgeroep word. Hierdie bindingsproses vind plaas tydens die samestelling. Die samesteller weet dat dit sommetode moet oproep met twee heelgetalwaardes vir cal.sum(2, 3). Vir cal(5.1, 6.4), sal dit die sommetode met twee dubbelwaardes oproep. Alle vereiste inligting is bekend voor looptyd, so dit verhoog die programdoeltreffendheid en uitvoeringspoed.
Wat is dinamiese binding?
In dinamiese binding los die samesteller nie die binding op tydens samestellingstyd nie. Binding vind plaas tydens looptyd. Dit staan ook bekend as laat binding. Dinamiese binding vind plaas in metode-oorheersing. Verwys na program wat in Java geskryf is.
publieke klas Shape(){
public void draw(){
System.out.println(“Teken vorm”);
}
}
public class Circle() brei vorm uit{
public void draw(){
System.out.println(“Teken sirkel”);
}
}
publieke klas Driehoek() verleng Vorm{
public void draw(){
System.out.println(“Teken driehoek”);
}
}
publieke klastoets{
public static void main(String args){
Shape s;
s=nuwe vorm();
s.draw();
s=nuwe sirkel();
s.draw();
s=nuwe Driehoek();
s.draw();
}
}
Volgens bogenoemde program het klas Shape 'n metode draw(). Klassirkel en klas Driehoek verleng Vormklas. Klassirkel en klasdriehoek kan die eienskappe en metodes van klasvorm erf. Daarom is klas Shape die superklas of ouerklas. Klassirkel en Klasdriehoek is subklasse of afgeleide klasse. Hierdie klasse het ook draw() metode met hul eie implementerings. Daarom word die draw()-metode in die superklas oorskryf.
In die hoofmetode word verskillende voorwerpe opgeroep. Daar is 'n verwysingsveranderlike van Shape-tipe, wat s is. Dan roep s die metode volgens die spesifieke klas aan. Tydens samestelling sal die samesteller slegs die superklas-trekkingsmetode verwys. Wanneer werklike uitvoering begin, sal dit lei tot die uitvoering van verskillende tekenmetodes. Eerstens sal s na die voorwerp van tipe Shape wys. Daarom sal dit die tekenmetode in Shape-klas aanroep. Dan sal die s die voorwerp van tipe Sirkel wys, en dit sal die tekenmetode van Sirkelklas aanroep. Ten slotte, sal s verwys na die voorwerp van tipe Driehoek, en dit sal die tekenmetode in Driehoek-klas aanroep. Selfs al is die verwysingsveranderlike van tipe Shape, hang die binding toevallig af van die objektipe. Hierdie konsep staan bekend as Dinamiese Binding. Die inligting word tydens looptyd verskaf, so die spoed van uitvoering is stadiger in vergelyking met statiese binding.
Wat is die ooreenkoms tussen statiese binding en dinamiese binding?
Albei hierdie hou verband met 'n polimorfisme wat 'n voorwerp in staat stel om op verskeie maniere op te tree
Wat is die verskil tussen statiese binding en dinamiese binding?
Statiese binding vs dinamiese binding |
|
Statiese binding is die tipe binding wat alle vereiste inligting versamel om 'n funksie tydens samestellingstyd te roep. | Dynamiese binding is die tipe binding wat alle vereiste inligting versamel om 'n funksie tydens looptyd te roep. |
Tyd van binding | |
Statiese binding vind plaas tydens samestellingstyd. | Dynamiese binding vind plaas tydens looptyd. |
Funksionaliteit | |
Static Binding gebruik tipe inligting vir binding. | Dynamic Binding gebruik voorwerpe om te besluit om te bind. |
Werklike voorwerp | |
Statiese binding gebruik nie 'n werklike voorwerp vir binding nie. | Dynamiese binding, gebruik die werklike voorwerp vir binding. |
Sinonieme | |
Statiese binding staan ook bekend as vroeë binding. | Dynamiese binding staan ook bekend as laat binding. |
Execution | |
Die uitvoeringspoed is vinnig in statiese binding. | Die uitvoeringspoed is laag in dinamiese binding. |
Voorbeeld | |
Statiese binding word gebruik in metode-oorlaai. | Dynamiese binding word gebruik in metode-oorheersing. |
Opsomming – Statiese binding vs dinamiese binding
Daar is 'n skakel tussen 'n metode-oproep en metode-definisie. Dit staan bekend as bindend. Daar is twee tipes bindings wat statiese binding en dinamiese binding genoem word. Die verskil tussen statiese binding en dinamiese binding is dat in statiese binding, die binding opgelos word tydens die saamsteltyd terwyl dinamiese binding opgelos word tydens die looptyd, wat die werklike tyd van uitvoering is. Aangesien die vereiste inligting voor looptyd verskaf word, is statiese binding vinnig in uitvoering in vergelyking met dinamiese binding.
Laai die PDF af van Static Binding vs Dynamic Binding
Jy kan die PDF-weergawe van hierdie artikel aflaai en dit vir vanlyn doeleindes gebruik soos per aanhalingsnota. Laai asseblief die PDF-weergawe hier af: Verskil tussen statiese binding en dinamiese binding