Forskjellen mellom statisk binding og dynamisk binding

Innholdsfortegnelse:

Forskjellen mellom statisk binding og dynamisk binding
Forskjellen mellom statisk binding og dynamisk binding

Video: Forskjellen mellom statisk binding og dynamisk binding

Video: Forskjellen mellom statisk binding og dynamisk binding
Video: Создание аннотации в java [Java Annotations | Reflection api] 2024, November
Anonim

Nøkkelforskjell – statisk binding vs dynamisk binding

Programmeringsspråk som Java og C støtter objektorientert programmering (OOP). Det lar deg bygge programvare ved hjelp av objekter. 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 metodekall med parametere. Selve metodeimplementeringen ligger i metodedefinisjonen. Det er en kobling mellom et metodekall og metodedefinisjon. Det er kjent som binding. Det finnes to typer bindinger. De er statisk binding og dynamisk binding. Den viktigste forskjellen mellom statisk binding og dynamisk binding er at ved statisk binding løses bindingen på kompileringstidspunktet mens dynamisk binding løses på kjøretiden, som er det faktiske tidspunktet for utførelse. Denne artikkelen diskuterer forskjellen mellom disse to bindingsmekanismene.

Hva er statisk binding?

Binding er koblingen mellom et metodekall og metodedefinisjoner.

Forskjellen mellom statisk binding og dynamisk binding
Forskjellen mellom statisk binding og dynamisk binding

Figur 01: Statisk binding og dynamisk binding

Se programmet nedenfor skrevet i Java.

offentlig klasse A{

public void method1(){

System.out.println(“Method1”);

}

public void method2(){

System.out.println(“Method2”);

}

public static void main(String args){

A obj=new A();

obj.method1();

obj.method2();

}

}

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

I statisk binding løses binding ved kompilering av kompilatoren. Det er også kjent som tidlig binding. Binding skjer før et program faktisk kjører. Statisk binding oppstår ved metodeoverbelastning. Se programmet nedenfor skrevet i Java.

public void-beregning{

public void sum(int x, int y){

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

}

offentlig ugyldig sum(dobbel x, dobbel y){

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

}

public static void main(String args){

Calculation cal=new Calculation();

cal.sum(2, 3);

cal.sum(5.1, 6.4);

}

}

I følge programmet ovenfor, vil metoden med to heltall bli påk alt når de to heltallene passeres. Når du sender to doble verdier, vil metoden som tilsvarer to doble verdier bli påk alt. Denne bindingsprosessen skjer på tidspunktet for kompilering. Kompilatoren vet at den skal kalle summetoden med to heltallsverdier 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øretid, så det øker programmets effektivitet og utførelseshastighet.

Hva er dynamisk binding?

I Dynamic Binding løser ikke kompilatoren bindingen på kompileringstidspunktet. Binding skjer ved kjøretid. Det er også kjent som sen binding. Dynamisk binding forekommer ved metodeoverstyring. Se program skrevet i Java.

public class Shape(){

public void draw(){

System.out.println(“Tegne form”);

}

}

public class Circle() utvider Shape{

public void draw(){

System.out.println(“Tegn sirkel”);

}

}

public class Triangle() utvider Shape{

public void draw(){

System.out.println(“Tegn trekant”);

}

}

test i offentlig klasse{

public static void main(String args){

Shape s;

s=new Shape();

s.draw();

s=new Circle();

s.draw();

s=new Triangle();

s.draw();

}

}

I følge programmet ovenfor har klassen Shape en metode draw(). Klassesirkel og klassetriangel utvider Shape-klassen. Klassesirkel og klassetriangel kan arve attributtene og metodene til klassen Shape. Derfor er klasse Shape superklassen eller foreldreklassen. Klassesirkel og Klassetriangel er underklasser eller avledede klasser. Disse klassene har også draw()-metoden med sine egne implementeringer. Derfor blir draw()-metoden i superklassen overstyrt.

I hovedmetoden påkalles forskjellige objekter. Det er en referansevariabel av Shape-typen, som er s. Deretter påkaller s metoden i henhold til den spesifikke klassen. På kompileringstidspunktet vil kompilatoren kun referere superklassens tegningsmetode. Når faktisk utførelse begynner, vil det føre til utførelse av ulike trekningsmetoder. Først vil s peke på objektet av typen Shape. Derfor vil den påkalle tegnemetoden i Shape-klassen. Deretter vil s-en peke objektet av typen Circle, og den vil påkalle tegnemetoden til Circle-klassen. Til slutt vil s referere til objektet av typen Triangle, og det vil påkalle tegnemetoden i Triangle-klassen. Selv om referansevariabelen er av typen Shape, avhenger bindingen tilfeldigvis av objekttypen. Dette konseptet er kjent som Dynamic Binding. Informasjonen gis under kjøretid, så utførelseshastigheten er langsommere sammenlignet med statisk binding.

Hva er likheten mellom statisk binding og dynamisk binding?

Begge disse er relatert til en polymorfisme som lar et objekt oppføre seg på flere måter

Hva er forskjellen mellom statisk binding og dynamisk binding?

Statisk binding vs dynamisk binding

Statisk binding er typen binding som samler inn all nødvendig informasjon for å kalle en funksjon under kompileringstiden. Dynamisk binding er typen binding som samler inn all nødvendig informasjon for å kalle en funksjon under kjøretiden.
Tidspunkt for binding
Statisk binding skjer ved kompilering. Dynamisk binding skjer under kjøretid.
Functionality
Static Binding bruker typeinformasjon for binding. Dynamic Binding bruker objekter for å løse til binding.
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.
Utførelse
Utførelseshastigheten er høy ved statisk binding. Utførelseshastigheten er lav i dynamisk binding.
Eksempel
Statisk binding brukes i metodeoverbelastning. Dynamisk binding brukes i metodeoverstyring.

Summary – Static Binding vs Dynamic Binding

Det er en kobling mellom et metodekall og metodedefinisjon. Det er kjent som binding. Det er to typer bindinger k alt statisk binding og dynamisk binding. Forskjellen mellom statisk binding og dynamisk binding er at ved statisk binding løses bindingen på kompileringstidspunktet, mens dynamisk binding løses på kjøretiden, som er det faktiske tidspunktet for utførelse. Siden den nødvendige informasjonen gis 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 offline-formål i henhold til sitat. Last ned PDF-versjonen her: Difference Between Static Binding og Dynamic Binding

Anbefalt: