Programmeringsspråk som Java och C # support Objektorienterad programmering (OOP). Det låter byggprogramvara använda objekt. Det finns många föremål i ett mjukvarusystem eller ett program. Dessa objekt har attribut och metoder. Attributen beskriver egenskaperna. Metoder beskriver de åtgärder som kan utföras av objektet. Data skickas genom objekt med metoder. De nödvändiga värdena skickas via metodsamtal med parametrar. Den faktiska metoden implementeringen är i metoden definition. Det finns en länk mellan ett metodsamtal och en metoddefinition. Det är känt som bindande. Det finns två typer av bindningar. De är statisk bindning och dynamisk bindning. De nyckelskillnad mellan statisk bindning och dynamisk bindning är det, i statisk bindning löses bindningen vid kompileringstiden medan dynamisk bindning löses vid körningstiden, vilket är den verkliga tiden för körning. I denna artikel diskuteras skillnaden mellan dessa två bindningsmekanismer.
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 vid sida vid sida - Statisk bindning mot dynamisk bindning i tabellform
6. Sammanfattning
Bindning är länken mellan ett metodtal och metoddefinitioner.
Figur 01: Statisk bindning och dynamisk bindning
Se nedan programmet skrivet i Java.
offentlig klass A
offentlig tomgångsmetod1 ()
System.out.println ( ”Metod1”);
offentlig tomgångsmetod2 ()
System.out.println ( ”Metod2”);
statisk statisk tomt huvud (String [] args)
En obj = ny A ();
obj.method1 ();
obj.method2 ();
Enligt ovanstående program skapas ett objekt av typ A. Då kallas metod1 och metod2. Att identifiera vilken metod som ska krävas för genomförande är känd som bindande. Uttalande obj.method1 () kommer att kalla method1 () och obj.method2 () kommer att kalla method2 (). Den här länken är bindande.
Vid statisk bindning löses bindning vid kompileringstid av kompilatorn. Det är också känt som tidig bindning. Bindning händer innan ett program körs. Statisk bindning uppstår vid överbelastning av metoden. Se nedan programmet skrivet i Java.
allmän tomrumsberäkning
allmän tomrumsumma (int x, int y)
System.out.println ("Summa är", x + y);
allmän tomrumsbelopp (dubbel x, dubbel y)
System.out.println ("Summa är", x + y);
statisk statisk tomt huvud (String [] args)
Beräkning cal = ny beräkning ();
cal.sum (2,3);
cal.sum (5,1, 6,4);
Enligt ovanstående program, när man passerar de två heltalen, kommer metoden med två heltal att åberopas. När två dubbelvärden överförs, kommer den metod som motsvarar två dubbelvärden att åberopas. Denna bindningsprocess sker vid tidpunkten för sammanställningen. Kompilatören vet att det ska kalla summetoden med två heltalvärden för cal.sum (2,3). För cal (5.1,6.4) kallas summetoden med två dubbelvärden. All nödvändig information är känd före körning, så det ökar programmets effektivitet och körhastighet.
I dynamisk bindning löser kompilatorn inte bindningen vid sammanställningstiden. Bindning sker vid körning. Det är också känt som sen bindning. Dynamisk bindning uppträder i överordnad metod. Se programmet skrivet i Java.
offentlig klass Shape ()
allmän tomröjning ()
System.out.println ("Draw shape");
public class Circle () sträcker sig Shape
allmän tomröjning ()
System.out.println ("Draw circle");
Public Class Triangle () sträcker sig Shape
allmän tomröjning ()
System.out.println ("Draw triangle");
offentlig klass Test
statisk statisk tomt huvud (String [] args)
Form s;
s = ny form ();
s.draw ();
s = ny cirkel ();
s.draw ();
s = ny triangel ();
s.draw ();
Enligt ovanstående program har klassformen en metoddragning (). Class Circle och Class Triangle utökar Shape class. Class Circle och Class Triangle kan ärva attributen och metoderna i klassform. Därför är klassformat superklassen eller förälderklassen. Class Circle och Class Triangle är underklasser eller härledda klasser. Dessa klasser har också draw () -metod med egna implementeringar. Därför överträder draw () -metoden i superklassen.
I huvudmetoden åberopas olika objekt. Det finns en referensvariabel för formtyp, vilket är s. Sedan åberopar s metoden enligt den specifika klassen. Vid kompileringstid kommer kompilatorn endast att hänvisa till superklassdragningsmetoden. När det faktiska utförandet börjar, kommer det att leda till utförandet av olika dragningsmetoder. Först s kommer att peka på objektet av typen Shape. Därför kommer det att anropa dragningsmetoden i Form-klassen. Då pekar s på objektet av typen Circle, och det kommer att pådra sig ritningsmetoden för Circle-klassen. Slutligen kommer s att referera till objektet av typen Triangle, och det kommer att åberopa dragningsmetoden i Triangle-klassen. Även om referensvariabeln är av typen Shape händer bindningen beroende på objekttypen. Detta koncept kallas dynamisk bindning. Informationen tillhandahålls vid körtid, så utföringshastigheten är långsammare jämfört med statisk bindning.
Statisk bindning mot dynamisk bindning | |
Statisk bindning är den typ av bindning som samlar all nödvändig information för att ringa 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örtiden. |
Tid för bindning | |
Statisk bindning sker vid kompileringstid. | Dynamisk bindning sker vid körning. |
Funktionalitet | |
Statisk bindning använder typinformation för bindning. | Dynamisk bindning använder objekt som löser sig att binda. |
Faktiskt objekt | |
Statisk bindning använder inte ett verkligt objekt för bindning. | Dynamisk bindning, använd själva objektet för bindning. |
synonymer | |
Statisk bindning är också känd som tidig bindning. | Dynamisk bindning är också känd som sen bindning. |
Avrättning | |
Utföringshastigheten är snabb i statisk bindning. | Utföringshastigheten är låg i dynamisk bindning. |
Exempel | |
Statisk bindning används vid överbelastning av metoden. | Dynamisk bindning används vid överordnad metod. |
Det finns en länk mellan ett metodsamtal och en 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 vid statisk bindning löses bindningen vid kompileringstiden medan dynamisk bindning löses vid körningstiden, vilket är den verkliga tiden för körning. Eftersom den nödvändiga informationen tillhandahålls före körtiden är statisk bindning snabb i körning jämfört med dynamisk bindning.
Du kan ladda ner PDF-versionen av den här artikeln och använda den för offline-ändamål enligt citationsnotat. Vänligen ladda ner PDF-versionen här: Skillnad mellan statisk bindning och dynamisk bindning
1.Java Intervju 04 - Statisk Bindning Vs Dynamisk Bindning, Mahika Tutorials, 27 Dec 2017. Tillgänglig här