Forskel mellem statisk binding og dynamisk binding

Nøgleforskel - Statisk Binding vs dynamisk binding
 

Programmeringssprog som Java og C # understøtter Objektorienteret programmering (OOP). Det giver mulighed for at bygge software ved hjælp af objekter. Der er mange objekter i et softwaresystem eller et program. Disse objekter har attributter og metoder. Egenskaber beskriver egenskaberne. Metoder beskriver de handlinger, der kan udføres af objektet. Data sendes gennem objekter ved hjælp af metoder. De krævede værdier sendes via metodekald med parametre. Den faktiske metodeimplementering er i metodedefinitionen. Der er en forbindelse mellem et metodekald og metodedefinition. Det er kendt som bindende. Der er to typer bindinger. De er statiske bindende og dynamiske bindinger. Det vigtigste forskel mellem statisk binding og dynamisk binding er det, ved statisk binding, løses bindingen på kompileringstidspunktet, mens dynamisk binding løses på kørselstidspunktet, hvilket er det faktiske tidspunkt for udførelse. Denne artikel diskuterer forskellen mellem disse to bindende mekanismer.

INDHOLD

1. Oversigt og nøgleforskel
2. Hvad er statisk binding
3. Hvad er dynamisk binding
4. Ligheder mellem statisk binding og dynamisk binding
5. Sammenligning side ved side - Statisk binding vs dynamisk binding i tabelform
6. Resume

Hvad er statisk binding?

Binding er forbindelsen mellem et metodekald og metodedefinitioner.

Figur 01: Statisk binding og dynamisk binding

Se nedenstående program skrevet i Java.

offentlig klasse A

metode til offentlig annullering1 ()

Println ( ”Metode 1”);

metode til offentlig annullering2 ()

Println ( ”metode2”);

public static void main (String [] args)

En obj = ny A ();

obj.method1 ();

obj.method2 ();

I henhold til ovenstående program oprettes et objekt af type A. Derefter kaldes metode 1 og metode2. At identificere, hvilken metode der skal kræve eksekvering, kaldes bindende. Udsagn obj.method1 () kalder metode1 () og obj.method2 () kalder metode2 (). Dette link er bindende.

Ved statisk binding opløses bindingen på kompileringstidspunktet af kompilatoren. Det er også kendt som tidlig binding. Binding sker, før et program faktisk kører. Statisk binding forekommer ved overbelastning af metoden. Se nedenstående program skrevet i Java.

Beregning af offentlig ugyldighed

offentlig tomrum (int x, int y)

System.out.println (“Summen er”, x + y);

offentlig annulleret sum (dobbelt x, dobbelt y)

System.out.println (“Summen er”, x + y);

public static void main (String [] args)

Beregning cal = ny Beregning ();

cal.sum (2,3);

beregnet sum (5.1, 6.4);

I henhold til ovenstående program, når man passerer de to heltal, vil metoden med to heltal blive aktiveret. Når du passerer to dobbeltværdier, aktiveres metoden, der svarer til to dobbeltværdier. Denne bindende proces forekommer på tidspunktet for kompilering. Compileren ved, at den skal kalde summetode med to heltalværdier for cal.sum (2,3). For cal (5.1,6.4) kaldes summetoden med to dobbeltværdier. Al nødvendig information er kendt inden runtime, så det øger programeffektiviteten og eksekveringshastigheden.

Hvad er dynamisk binding?

I Dynamic Binding løser kompilatoren ikke bindingen på kompileringstidspunktet. Binding sker på kørselstidspunktet. Det er også kendt som sen binding. Dynamisk binding forekommer i metodeoverskridelse. Se programmet skrevet i Java.

form af offentlig klasse ()

uafgjort for offentligt ugyldigt ()

System.out.println ("Tegn form");

public class Circle () udvider form

uafgjort for offentligt ugyldigt ()

System.out.println (“Draw cirkel”);

triangel i offentlig klasse () udvider form

uafgjort for offentligt ugyldigt ()

System.out.println ("Tegn trekant");

offentlig klassetest

public static void main (String [] args)

Form;

s = ny form ();

s.draw ();

s = ny cirkel ();

s.draw ();

s = nyt trekant ();

s.draw ();

I henhold til ovenstående program har klasse Shape en metodetrækning (). Klassecirkel og klassetrekant udvider formklassen. Klassecirkel og klassetrekant kan arve attributterne og metoderne for klasseform. Derfor er klasseform superklassen eller forældreklassen. Class Circle og Class Triangle er underklasser eller afledte klasser. Disse klasser har også draw () -metode med deres egne implementeringer. Derfor er draw () -metoden i superklassen tilsidesat.

I hovedmetoden aktiveres forskellige objekter. Der er en referencevariabel af formtype, som er s. Derefter påberåber s metoden sig i henhold til den specifikke klasse. På kompileringstidspunktet refererer compileren kun til superklasse-metode. Når den faktiske udførelse begynder, vil det føre til udførelsen af ​​forskellige trækmetoder. Først peger s på objektet af typen form. Derfor påkalder det trækmetoden i formklasse. Derefter peger s'erne på objektet af typen cirkel, og det påkalder tegningsmetoden i cirkelklassen. Til sidst henviser s til objektet af typen trekant, og det påkalder tegnemetoden i trekantklassen. Selvom referencevariablen er af typen Form, afhænger tilfældigvis bindingen af ​​objekttypen. Dette koncept kaldes Dynamic Binding. Oplysningerne leveres ved kørselstidspunktet, så udførelseshastigheden er langsommere sammenlignet med statisk binding.

Hvad er ligheden mellem statisk binding og dynamisk binding?

  • Begge disse er relateret til en polymorfisme, der tillader et objekt at opføre sig på flere måder.

Hvad er forskellen mellem statisk binding og dynamisk binding?

Statisk binding vs dynamisk binding

Statisk binding er den type binding, der indsamler al nødvendig information for at kalde en funktion i kompileringstiden. Dynamisk binding er den type binding, der indsamler alle nødvendige oplysninger for at kalde en funktion i løbetid.
 Bindelsestid
Statisk binding forekommer på kompileringstidspunktet. Dynamisk binding sker på kørselstidspunktet.
Funktionalitet
Statisk binding bruger typeinformation til binding. Dynamisk binding bruger objekter til at løse at binde.
 Faktisk objekt
Statisk binding bruger ikke et faktisk objekt til binding. Dynamisk binding, brug det egentlige objekt til binding.
Synonymer
Statisk binding er også kendt som tidlig binding. Dynamisk binding er også kendt som sen binding.
Udførelse
Udførelseshastigheden er hurtig med statisk binding. Udførelseshastigheden har lav dynamisk binding.
Eksempel
Statisk binding anvendes til overbelastning af metoden. Dynamisk binding bruges i metodeoverskridelse.

Resume - Statisk Binding vs dynamisk binding 

Der er en forbindelse mellem et metodekald og metodedefinition. Det er kendt som bindende. Der er to typer bindinger kaldet statisk binding og dynamisk binding. Forskellen mellem statisk binding og dynamisk binding er, at ved statisk binding løses bindingen på kompileringstidspunktet, mens dynamisk binding løses ved kørselstidspunktet, hvilket er det faktiske tidspunkt for udførelse. Da den krævede information leveres før kørselstid, er statisk binding hurtigt i udførelse sammenlignet med dynamisk binding.

Download PDF af Static Binding vs Dynamic Binding

Du kan downloade PDF-versionen af ​​denne artikel og bruge den til offline-formål som angivet i citatnotatet. Download PDF-versionen her: Forskel mellem statisk binding og dynamisk binding

Reference:

1.Java Interview 04 - Static Binding Vs Dynamic Binding, Mahika Tutorials, 27. december 2017. Findes her