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.
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