Forskjellen mellom statisk binding og dynamisk binding

Nøkkelforskjell - Statisk Binding vs Dynamic Binding
 

Programmeringsspråk som Java og C # support Object Oriented Programming (OOP). Det gjør det mulig å bygge programvare ved hjelp av objekter. Det er mange objekter i et programvaresystem eller et program. Disse objektene har attributter og metoder. Egenskaper beskriver egenskapene. Metoder beskriver handlingene som kan utføres av objektet. Data sendes gjennom objekter ved hjelp av metoder. De nødvendige verdiene sendes via metodeanrop med parametere. Den faktiske metoden implementering er i metoden definisjon. Det er en sammenheng mellom en metodeanrop og metodedefinisjon. Det er kjent som bindende. Det er to typer bindinger. De er statisk bindende og dynamisk binding. De nøkkelforskjell mellom statisk binding og dynamisk binding er det, Ved statisk binding blir bindingen løst på kompileringstidspunktet mens dynamisk binding løses på kjøretiden, hvilket er den faktiske tiden for utførelse. Denne artikkelen diskuterer forskjellen mellom disse to bindingsmekanismer.

INNHOLD

1. Oversikt og nøkkelforskjell
2. Hva er Statisk Binding
3. Hva er Dynamic Binding
4. Likheter mellom statisk binding og dynamisk binding
5. Side ved side-sammenligning - Statisk binding mot dynamisk binding i tabellform
6. Sammendrag

Hva er Statisk Binding?

Binding er lenken mellom en metodeanrop og metodedefinisjoner.

Figur 01: Statisk binding og dynamisk binding

Se underprogrammet som er skrevet i Java.

offentlig klasse A

offentlig tomrommetode1 ()

System.out.println ( “Method1”);

offentlig tomrommetode2 ()

System.out.println ( “method2”);

offentlig statisk tomrom main (String [] args)

Et obj = nytt A ();

obj.method1 ();

obj.method2 ();

I henhold til det ovennevnte programmet opprettes et objekt av type A. Deretter kalles metode1 og metode2. Å identifisere hvilken metode som skal kalles for utførelse er kjent som bindende. Statement obj.method1 () vil kalle metode1 () og obj.method2 () vil kalle metode2 (). Denne lenken er bindende.

Ved statisk binding blir bindingen løst ved kompileringstid av kompilatoren. Det er også kjent som tidlig binding. Binding skjer før et program faktisk kjører. Statisk binding forekommer ved overbelastning av metoden. Se underprogrammet som er skrevet i Java.

Offentlig tomgang Beregning

offentlig tomromsumme (int x, int y)

System.out.println ("Sum er", x + y);

offentlig tomrom sum (dobbelt x, dobbelt y)

System.out.println ("Sum er", x + y);

offentlig statisk tomrom main (String [] args)

Beregning cal = ny Beregning ();

cal.sum (2,3);

cal.sum (5.1, 6.4);

I henhold til det ovennevnte programmet, når man passerer de to heltallene, vil fremgangsmåten med to heltall bli påkalt. Når man overfører to doble verdier, vil metoden som tilsvarer to doble verdier bli påkalt. Denne bindingsprosessen skjer ved kompileringstidspunktet. Kompilatoren vet at den skal kalle summetode med to heltallverdier for cal.sum (2,3). For cal (5.1,6.4) vil det kalle summetoden med to dobbelteverdier. All nødvendig informasjon er kjent før kjøretid, slik at programmet øker programmets effektivitet og eksekveringshastighet.

Hva er Dynamic Binding?

I Dynamisk Binding løsner kompilatoren ikke bindingen på kompileringstidspunktet. Binding skjer ved kjøretid. Det er også kjent som sen binding. Dynamisk Binding skjer i overordnet metode. Se programmet skrevet i Java.

offentlig klasse Shape ()

offentlig ugyldig tegning ()

System.out.println ("Draw shape");

offentlig klasse Sirkel () strekker seg Shape

offentlig ugyldig tegning ()

System.out.println ("Draw circle");

Public Class Triangle () strekker seg Shape

offentlig ugyldig tegning ()

System.out.println ("Draw triangle");

offentlig klasse Test

offentlig statisk tomrom main (String [] args)

Form s;

s = ny form ();

s.draw ();

s = ny sirkel ();

s.draw ();

s = ny trekant ();

s.draw ();

I henhold til det ovennevnte programmet har klasseformet en metodetrekk (). Class Circle og Class Triangle utvider Shape klasse. Klassesirkel og klasse Triangle kan arve attributter og metoder for klasseform. Derfor er klasse Shape superklassen eller foreldreklassen. Klassesirkel og klasse Triangle er underklasser eller avledede klasser. Disse klassene har også draw () metode med egne implementeringer. Derfor er tegnet () -metoden i superklassen overstyrt.

I hovedmetoden er forskjellige objekter påkalt. Det finnes en referansevariabel for formtype, som er s. Deretter s setter på metoden i henhold til den spesifikke klassen. Ved kompileringstid, vil kompilatoren kun referere til superklasse-tegnemetoden. Når den faktiske utførelsen begynner, vil det føre til utførelse av forskjellige tegne metoder. Først vil s peke på objektet av typen Form. Derfor vil det påberope tegne-metoden i Shape-klassen. Så s vil peke gjenstanden for type Circle, og den vil påkalle draw-metoden til Circle-klassen. Til slutt vil s referere til objektet av type Triangle, og det vil påberope tegnemetoden i Triangle-klassen. Selv om referansevariabelen er av typen Form, skjer bindingen avhengig av gjenstandstypen. Dette konseptet kalles Dynamisk Binding. Informasjonen er 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 det mulig for en gjenstand å oppføre seg på flere måter.

Hva er forskjellen mellom statisk binding og dynamisk binding?

Statisk binding mot dynamisk binding

Statisk binding er typen binding som samler all nødvendig informasjon for å ringe en funksjon under kompileringstid. Dynamisk Binding er typen binding som samler all nødvendig informasjon for å ringe en funksjon i løpet av kjøretiden.
 Bindingstidspunkt
Statisk binding skjer ved kompileringstid. Dynamisk binding skjer ved kjøretid.
funksjonalitet
Statisk Binding bruker typen informasjon for binding. Dynamisk Binding bruker objekter som skal løses for å binde seg.
 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øringshastigheten er rask i statisk binding. Utføringshastigheten er lav i dynamisk binding.
Eksempel
Statisk binding brukes i overbelastning av metoden. Dynamisk binding brukes i overordnet metode.

Sammendrag - Statisk Binding vs Dynamic Binding 

Det er en sammenheng mellom en metodeanrop og metodedefinisjon. 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 ved statisk binding blir bindingen løst på kompileringstidspunktet mens dynamisk binding er løst på kjøretiden, som er den faktiske tidspunkt for utførelse. Siden den nødvendige informasjonen er gitt før kjøretiden, er statisk binding rask i utførelse sammenlignet med dynamisk binding.

Last ned PDF av Statisk Binding vs Dynamic Binding

Du kan laste ned PDF-versjonen av denne artikkelen og bruke den til nettbasert bruk som per sitatnotat. Vennligst last ned PDF-versjonen her: Forskjellen mellom Statisk Binding og Dynamisk Binding

Henvisning:

1.Java Intervju 04 - Statisk Binding Vs Dynamic Binding, Mahika Tutorials, 27. desember 2017. Tilgjengelig her