Skillnaden Mellan Statisk Bindning Och Dynamisk Bindning

Innehållsförteckning:

Skillnaden Mellan Statisk Bindning Och Dynamisk Bindning
Skillnaden Mellan Statisk Bindning Och Dynamisk Bindning

Video: Skillnaden Mellan Statisk Bindning Och Dynamisk Bindning

Video: Skillnaden Mellan Statisk Bindning Och Dynamisk Bindning
Video: Kemins grunder del 2, joner och kemisk bindning 2024, November
Anonim

Nyckelskillnad - Statisk bindning mot dynamisk bindning

Programmeringsspråk som Java och C # stöder Object Oriented Programming (OOP). Det gör det möjligt att bygga programvara med objekt. Det finns många objekt i ett mjukvarusystem eller ett program. Dessa objekt har attribut och metoder. Attribut beskriver egenskaperna. Metoder beskriver de åtgärder som kan utföras av objektet. Data skickas genom objekt med hjälp av metoder. De erforderliga värdena skickas genom metodanrop med parametrar. Den faktiska metodimplementeringen finns i metoddefinitionen. Det finns en länk mellan en metodanrop och metoddefinition. Det är känt som bindande. Det finns två typer av bindningar. De är statisk bindande och dynamisk bindning. Nyckelskillnaden mellan statisk bindning och dynamisk bindning är att bindningen i statisk bindning löses vid sammanställningstiden medan dynamisk bindning löses vid körtiden,vilket är den verkliga tiden för avrättningen. Denna artikel diskuterar skillnaden mellan dessa två bindningsmekanismer.

INNEHÅLL

1. Översikt och nyckelskillnad

2. Vad är statisk bindning

3. Vad är dynamisk bindning

4. Likheter mellan statisk bindning och dynamisk bindning

5. Jämförelse sida vid sida - Statisk bindning vs dynamisk bindning i tabellform

6. Sammanfattning

Vad är statisk bindning?

Bindning är länken mellan ett metodanrop och metoddefinitioner.

Skillnaden mellan statisk bindning och dynamisk bindning
Skillnaden mellan statisk bindning och dynamisk bindning

Figur 01: Statisk bindning och dynamisk bindning

Se nedanstående program skrivet i Java.

allmän klass A {

public void method1 () {

System.out.println (“Method1”);

}

public void method2 () {

System.out.println (“Method2”);

}

public static void main (String args) {

En obj = ny A ();

obj.method1 ();

obj.method2 ();

}

}

Enligt ovanstående program skapas ett objekt av typ A. Sedan kallas metod1 och metod2. Att identifiera vilken metod som ska kräva körning kallas bindande. Uttalande obj.method1 () kommer att anropa method1 () och obj.method2 () kommer att anropa method2 (). Den här länken är bindande.

Vid statisk bindning löses bindningen vid kompileringen av kompilatorn. Det är också känt som tidig bindning. Bindning sker innan ett program faktiskt körs. Statisk bindning sker vid överbelastning av metoden. Se nedanstående program skrivet i Java.

offentlig tomrumsberäkning {

offentlig ogiltig summa (int x, int y) {

System.out.println (“Summan är”, x + y);

}

offentlig ogiltig summa (dubbel x, dubbel y) {

System.out.println (“Summan är”, x + y);

}

public static void main (String args) {

Beräkning cal = ny Beräkning ();

kal. sum (2,3);

kal.sum (5.1, 6.4);

}

}

Enligt ovanstående program kommer metoden med två heltal att åberopas när de passerar två heltal. När två dubbla värden skickas, anropas metoden som motsvarar två dubbla värden. Denna bindningsprocess inträffar vid tidpunkten för sammanställningen. Kompilatorn vet att den ska kalla summetoden med två heltal för cal.sum (2,3). För cal (5.1,6.4) kallas summan metoden med två dubbla värden. All nödvändig information är känd före körning, så det ökar programeffektiviteten och körningshastigheten.

Vad är dynamisk bindning?

I dynamisk bindning löser kompilatorn inte bindningen vid kompileringen. Bindning sker vid körtid. Det är också känt som sen bindning. Dynamisk bindning inträffar vid åsidosättande av metod. Se programmet skrivet i Java.

public class Shape () {

offentligt ogiltigt drag () {

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

}

}

public class Circle () utökar Shape {

offentligt ogiltigt drag () {

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

}

}

public class Triangle () utökar Shape {

offentligt ogiltigt drag () {

System.out.println ("Rita triangel");

}

}

offentligt klassprov {

public static void main (String args) {

Form s;

s = ny form ();

s. rita ();

s = ny cirkel ();

s. rita ();

s = ny triangel ();

s. rita ();

}

}

Enligt ovanstående program har class Shape en metoddragning (). Klasscirkel och klass triangel utökar formklass. Klasscirkel och klass triangel kan ärva attribut och metoder för klassform. Därför är klassform superklassen eller föräldraklassen. Klasscirkel och klass triangel är underklasser eller härledda klasser. Dessa klasser har också draw () -metoden med sina egna implementeringar. Därför åsidosätts draw () -metoden i superklassen.

I huvudmetoden åberopas olika objekt. Det finns en referensvariabel av formtyp, som är s. Sedan åberopar s metoden enligt den specifika klassen. Vid sammanställning hänvisar kompilatorn endast superklassdragningsmetoden. När det verkliga utförandet börjar kommer det att leda till utförandet av olika dragmetoder. Först kommer s att peka på objektet av typen Shape. Därför kommer den att åberopa ritningsmetoden i formklassen. Då pekar s objektet av typen Circle och det åberopar ritningsmetoden för Circle class. Slutligen kommer s att hänvisa till objektet av typen Triangle, och det kommer att åberopa ritningsmetoden i triangelklassen. Även om referensvariabeln är av typ Shape, beror bindningen på objekttypen. Detta koncept är känt som Dynamic Binding. Informationen ges vid körning,så körningshastigheten är långsammare jämfört med statisk bindning.

Vad är likheten mellan statisk bindning och dynamisk bindning?

Båda dessa är relaterade till en polymorfism som gör att ett objekt kan bete sig på flera sätt

Vad är skillnaden mellan statisk bindning och dynamisk bindning?

Skilja artikeln mitt före bordet

Statisk bindning vs dynamisk bindning

Statisk bindning är den typ av bindning som samlar all nödvändig information för att anropa en funktion under kompileringstiden. Dynamisk bindning är den typ av bindning som samlar all nödvändig information för att ringa en funktion under körningstiden.
Bindningstid
Statisk bindning sker vid sammanställningstid. Dynamisk bindning sker vid körning.
Funktionalitet
Statisk bindning använder typinformation för bindning. Dynamic Binding använder objekt för att lösa för att binda.
Verkligt objekt
Statisk bindning använder inte ett verkligt objekt för bindning. Dynamisk bindning, använd det verkliga objektet för bindning.
Synonymer
Statisk bindning är också känd som tidig bindning. Dynamisk bindning är också känd som senbindning.
Avrättning
Körningshastigheten är snabb i statisk bindning. Körningshastigheten är låg i dynamisk bindning.
Exempel
Statisk bindning används vid överbelastning av metoder. Dynamisk bindning används vid åsidosättande av metoder.

Sammanfattning - Statisk bindning vs dynamisk bindning

Det finns en länk mellan en metodanrop och metoddefinition. Det är känt som bindande. Det finns två typer av bindningar som kallas statisk bindning och dynamisk bindning. Skillnaden mellan statisk bindning och dynamisk bindning är att i statisk bindning löses bindningen vid sammanställningstiden medan dynamisk bindning löses vid körningstiden, vilket är den verkliga tiden för körning. Eftersom den erforderliga informationen tillhandahålls före körtiden är statisk bindning snabb vid körning jämfört med dynamisk bindning.

Ladda ner PDF-filen för Static Binding vs Dynamic Binding

Du kan ladda ner PDF-versionen av den här artikeln och använda den för offlineändamål enligt citat. Ladda ner PDF-versionen här: Skillnaden mellan statisk bindning och dynamisk bindning

Rekommenderas: