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.
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
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.
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.
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. |
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.
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
1.Java Intervju 04 - Statisk Binding Vs Dynamic Binding, Mahika Tutorials, 27. desember 2017. Tilgjengelig her