Nøkkelforskjell - Statisk binding mot dynamisk binding
Programmeringsspråk som Java og C # støtter Object Oriented Programming (OOP). Det gjør det mulig å bygge programvare ved hjelp av gjenstander. Det er mange objekter i et programvaresystem eller et program. Disse objektene har attributter og metoder. Attributter beskriver egenskapene. Metoder beskriver handlingene som kan utføres av objektet. Data sendes gjennom objekter ved hjelp av metoder. De nødvendige verdiene sendes gjennom metodeanrop med parametere. Den faktiske implementeringen av metoden er i metodedefinisjonen. Det er en kobling mellom en metodeanrop og definisjon av metoden. Det er kjent som bindende. Det er to typer bindinger. De er statisk binding og dynamisk binding. Hovedforskjellen mellom statisk binding og dynamisk binding er at bindingen i statisk binding løses på kompileringstidspunktet mens dynamisk binding løses på kjøretiden,som er den faktiske tiden for utførelsen. Denne artikkelen diskuterer forskjellen mellom disse to bindingsmekanismene.
INNHOLD
1. Oversikt og nøkkelforskjell
2. Hva er statisk binding
3. Hva er dynamisk binding
4. Likheter mellom statisk binding og dynamisk binding
5. Sammenligning side om side - Statisk binding vs dynamisk binding i tabellform
6. Sammendrag
Hva er statisk binding?
Binding er koblingen mellom en metodeanrop og definisjoner av metoden.
Figur 01: Statisk binding og dynamisk binding
Se programmet nedenfor skrevet på Java.
offentlig klasse A {
offentlig ugyldig metode1 () {
System.out.println (“Metode1”);
}
offentlig ugyldig metode2 () {
System.out.println (“Method2”);
}
public static void main (String args) {
En obj = ny A ();
obj.method1 ();
obj.method2 ();
}
}
I henhold til programmet ovenfor opprettes et objekt av type A. Da kalles metode1 og metode2. Å identifisere hvilken metode som skal kreve utførelse er kjent som bindende. Uttalelse obj.method1 () vil ringe metode1 () og obj.method2 () vil ringe method2 (). Denne lenken er bindende.
Ved statisk binding løses binding ved kompileringstidspunktet av kompilatoren. Det er også kjent som tidlig binding. Binding skjer før et program faktisk kjører. Statisk binding skjer ved overbelastning av metoden. Se programmet nedenfor skrevet på Java.
offentlig tomromberegning {
offentlig tomrom (int x, int y) {
System.out.println (“Sum er“, x + y);
}
offentlig tom sum (dobbel x, dobbel y) {
System.out.println (“Sum er“, x + y);
}
public static void main (String args) {
Beregning cal = ny Beregning ();
kal. sum (2,3);
kal.sum (5.1, 6.4);
}
}
I henhold til det ovennevnte programmet vil metoden med to heltall bli påkalt når du passerer de to heltallene. Når du sender to doble verdier, blir metoden som tilsvarer to doble verdier påkalt. Denne bindingsprosessen skjer på tidspunktet for kompilering. Kompilatoren vet at den skal kalle summetoden med to heltallverdier for cal.sum (2,3). For cal (5.1,6.4) vil den kalle summetoden med to doble verdier. All nødvendig informasjon er kjent før kjøretiden, så det øker programeffektiviteten og kjøringshastigheten.
Hva er dynamisk binding?
I dynamisk binding løser ikke kompilatoren bindingen på kompileringstidspunktet. Binding skjer på kjøretid. Det er også kjent som sen binding. Dynamisk binding skjer i overstyring av metoden. Se programmet skrevet i Java.
offentlig klasse Shape () {
offentlig tomtrekk () {
System.out.println (“Tegn form”);
}
}
public class Circle () utvider Shape {
offentlig tomtrekk () {
System.out.println (“Tegn sirkel”);
}
}
offentlig klasse Triangle () utvider Shape {
offentlig tomtrekk () {
System.out.println (“Tegn trekant”);
}
}
offentlig klassetest {
public static void main (String args) {
Form s;
s = ny form ();
s. tegne ();
s = ny sirkel ();
s. tegne ();
s = ny trekant ();
s. tegne ();
}
}
I henhold til det ovennevnte programmet har klasse Shape en metodetegning (). Klassesirkel og klasse Trekant utvider formklasse. Class Circle og class Triangle kan arve attributtene og metodene til class Shape. Derfor er class Shape superklassen eller foreldreklassen. Class Circle og Class Triangle er underklasser eller avledede klasser. Disse klassene har også tegnemetode () med egne implementeringer. Derfor blir draw () -metoden i superklassen overstyrt.
I hovedmetoden påkalles forskjellige objekter. Det er en referansevariabel av formtype, som er s. Deretter påkaller s metoden i henhold til den spesifikke klassen. Ved kompilering vil kompilatoren bare henvise superklassetegnemetoden. Når faktisk utførelse begynner, vil det føre til utførelse av forskjellige tegningsmetoder. Først vil s peke på objektet av typen Shape. Derfor vil den påkalle trekkmetoden i formklasse. Deretter peker s objektet av typen Circle, og det vil påkalle tegnemetoden til Circle class. Til slutt vil s referere til objektet av typen Triangle, og det vil påkalle tegningsmetoden i Triangle-klassen. Selv om referansevariabelen er av typen Shape, avhenger innbinding av objekttypen. Dette konseptet er kjent som Dynamic Binding. Informasjonen blir gitt på kjøretid,så hastigheten på utførelsen er langsommere sammenlignet med statisk binding.
Hva er likheten mellom statisk binding og dynamisk binding?
Begge disse er relatert til en polymorfisme som gjør at et objekt kan oppføre seg på flere måter
Hva er forskjellen mellom statisk binding og dynamisk binding?
Diff Article Midt før tabell
Statisk binding mot dynamisk binding |
|
Statisk binding er typen binding som samler all nødvendig informasjon for å ringe en funksjon i løpet av kompileringstiden. | Dynamic Binding er typen binding som samler all nødvendig informasjon for å ringe en funksjon i løpet av kjøretiden. |
Bindingstid | |
Statisk binding skjer på kompileringstidspunktet. | Dynamisk binding skjer ved kjøretid. |
Funksjonalitet | |
Static Binding bruker typeinformasjon for binding. | Dynamic Binding bruker objekter for å løse for å binde. |
Faktisk objekt | |
Statisk binding bruker ikke et faktisk objekt for binding. | Dynamisk binding, bruk selve objektet for binding. |
Synonymer | |
Statisk binding er også kjent som tidlig binding. | Dynamisk binding er også kjent som sen binding. |
Henrettelse | |
Utførelseshastigheten er rask i statisk binding. | Utføringshastigheten er lav i dynamisk binding. |
Eksempel | |
Statisk binding brukes i metodeoverbelastning. | Dynamisk binding brukes i overstyring av metoden. |
Sammendrag - Statisk binding mot dynamisk binding
Det er en kobling mellom en metodeanrop og definisjon av metoden. Det er kjent som bindende. Det er to typer bindinger kalt statisk binding og dynamisk binding. Forskjellen mellom statisk binding og dynamisk binding er at i statisk binding løses bindingen på kompileringstidspunktet mens dynamisk binding løses på kjøretiden, som er den faktiske tiden for utførelse. Ettersom den nødvendige informasjonen er gitt før kjøretid, er statisk binding rask i utførelse sammenlignet med dynamisk binding.
Last ned PDF-en av Static Binding vs Dynamic Binding
Du kan laste ned PDF-versjonen av denne artikkelen og bruke den til frakoblede formål som angitt i en henvisning. Last ned PDF-versjonen her: Forskjellen mellom statisk binding og dynamisk binding