Verschil Tussen Statische Binding En Dynamische Binding

Inhoudsopgave:

Verschil Tussen Statische Binding En Dynamische Binding
Verschil Tussen Statische Binding En Dynamische Binding

Video: Verschil Tussen Statische Binding En Dynamische Binding

Video: Verschil Tussen Statische Binding En Dynamische Binding
Video: Java Interview 04 - Static Binding Vs Dynamic Binding 2024, December
Anonim

Belangrijkste verschil - Statische binding versus dynamische binding

Programmeertalen zoals Java en C # ondersteunen Object Oriented Programming (OOP). Hiermee kunt u software bouwen met behulp van objecten. Er zijn veel objecten in een softwaresysteem of programma. Deze objecten hebben attributen en methoden. Attributen beschrijven de kenmerken. Methoden beschrijven de acties die door het object kunnen worden uitgevoerd. Gegevens worden met behulp van methoden door objecten geleid. De vereiste waarden worden verzonden via methodeaanroepen met parameters. De daadwerkelijke implementatie van de methode is in de methodedefinitie. Er is een verband tussen een methodeaanroep en een methodedefinitie. Het staat bekend als bindend. Er zijn twee soorten bindingen. Ze zijn statisch bindend en dynamisch bindend. Het belangrijkste verschil tussen statische binding en dynamische binding is dat bij statische binding de binding wordt opgelost tijdens het compileren, terwijl dynamische binding wordt opgelost tijdens de runtime,dat is het daadwerkelijke tijdstip van uitvoering. Dit artikel bespreekt het verschil tussen deze twee bindingsmechanismen.

INHOUD

1. Overzicht en belangrijkste verschil

2. Wat is statische binding

3. Wat is dynamische binding

4. Overeenkomsten tussen statische binding en dynamische binding

5. Vergelijking zij aan zij - Statische binding versus dynamische binding in tabelvorm

6. Samenvatting

Wat is statische binding?

Binding is de link tussen een methodeaanroep en methodedefinities.

Verschil tussen statische binding en dynamische binding
Verschil tussen statische binding en dynamische binding

Figuur 01: Statische binding en dynamische binding

Raadpleeg het onderstaande programma geschreven in Java.

openbare klasse A {

public void method1 () {

System.out.println ("Method1");

}

public void method2 () {

System.out.println ("Method2");

}

public static void main (String args) {

A obj = nieuwe A ();

obj.method1 ();

obj.method2 ();

}

}

Volgens het bovenstaande programma wordt een object van het type A gemaakt. Vervolgens worden method1 en method2 aangeroepen. Bepalen welke methode moet worden uitgevoerd voor uitvoering, staat bekend als binding. De instructie obj.method1 () roept methode1 () aan en obj.method2 () roept methode2 () aan. Deze link is bindend.

Bij statische binding wordt de binding tijdens het compileren door de compiler opgelost. Het wordt ook wel vroege binding genoemd. Binding vindt plaats voordat een programma daadwerkelijk wordt uitgevoerd. Statische binding treedt op bij overbelasting van de methode. Raadpleeg het onderstaande programma geschreven in Java.

openbare leegte Berekening {

openbare ongeldige som (int x, int y) {

System.out.println ("Som is", x + y);

}

openbare ongeldige som (dubbele x, dubbele y) {

System.out.println ("Som is", x + y);

}

public static void main (String args) {

Berekening cal = nieuwe berekening ();

cal.sum (2,3);

cal.sum (5,1, 6,4);

}

}

Volgens het bovenstaande programma zal bij het doorgeven van de twee gehele getallen de methode met twee gehele getallen worden aangeroepen. Als u twee dubbele waarden doorgeeft, wordt de methode die overeenkomt met twee dubbele waarden aangeroepen. Dit bindende proces vindt plaats op het moment van compilatie. De compiler weet dat hij de som-methode moet aanroepen met twee gehele getallen voor cal.sum (2,3). Voor cal (5.1,6.4) roept het de som-methode aan met twee dubbele waarden. Alle vereiste informatie is bekend vóór runtime, dus het verhoogt de programma-efficiëntie en uitvoeringssnelheid.

Wat is dynamische binding?

In Dynamic Binding lost de compiler de binding niet op tijdens het compileren. Binding vindt plaats tijdens runtime. Het wordt ook wel late binding genoemd. Dynamische binding vindt plaats bij het overschrijven van de methode. Verwijs naar programma geschreven in Java.

openbare klasse Shape () {

openbare ongeldigverklaring () {

System.out.println ("Tekenvorm");

}

}

openbare klasse Circle () breidt Shape {uit

openbare ongeldigverklaring () {

System.out.println ("Teken cirkel");

}

}

openbare klasse Triangle () breidt Shape {uit

openbare ongeldigverklaring () {

System.out.println ("Teken driehoek");

}

}

openbare klas Test {

public static void main (String args) {

Vorm s;

s = nieuwe vorm ();

s.draw ();

s = nieuwe Circle ();

s.draw ();

s = nieuwe driehoek ();

s.draw ();

}

}

Volgens het bovenstaande programma heeft klasse Shape een methode draw (). Klasse Cirkel en Klasse Driehoek breiden de vormklasse uit. Class Circle en class Triangle kunnen de attributen en methoden van Class Shape erven. Daarom is klasse Shape de superklasse of bovenliggende klasse. Class Circle en Class Triangle zijn subklassen of afgeleide klassen. Deze klassen hebben ook de methode draw () met hun eigen implementaties. Daarom wordt de methode draw () in de superklasse overschreven.

In de hoofdmethode worden verschillende objecten aangeroepen. Er is een referentievariabele van het Shape-type, namelijk s. Vervolgens roept s de methode op volgens de specifieke klasse. Tijdens het compileren verwijst de compiler alleen naar de superklasse-tekenmethode. Wanneer de daadwerkelijke uitvoering begint, zal dit leiden tot de uitvoering van verschillende trekkingsmethoden. Ten eerste wijzen s naar het object van het type Shape. Daarom wordt de tekenmethode in de klasse Shape aangeroepen. Dan wijzen de s naar het object van het type Circle, en het roept de tekenmethode van de Circle-klasse op. Ten slotte verwijst s naar het object van het type Triangle en roept het de tekenmethode in de klasse Triangle aan. Hoewel de referentievariabele van het type Shape is, is de binding afhankelijk van het objecttype. Dit concept staat bekend als Dynamic Binding. De informatie wordt tijdens runtime verstrekt,dus de snelheid van uitvoering is langzamer in vergelijking met statische binding.

Wat is de overeenkomst tussen statische binding en dynamische binding?

Beide zijn gerelateerd aan een polymorfisme waardoor een object zich op meerdere manieren kan gedragen

Wat is het verschil tussen statische binding en dynamische binding?

Diff Artikel Midden voor Tafel

Statische binding versus dynamische binding

Statische binding is het type binding dat alle vereiste informatie verzamelt om een functie aan te roepen tijdens het compileren. Dynamische binding is het type binding dat alle vereiste informatie verzamelt om een functie tijdens runtime aan te roepen.
Tijdstip van binding
Statische binding vindt plaats tijdens het compileren. Dynamische binding vindt plaats tijdens runtime.
Functionaliteit
Statisch binden gebruikt type-informatie voor het binden. Dynamic Binding gebruikt objecten om op te lossen om te binden.
Werkelijk object
Bij statische binding wordt geen daadwerkelijk object gebruikt om te binden. Dynamische binding, gebruik het eigenlijke object voor binding.
Synoniemen
Statische binding wordt ook wel vroege binding genoemd. Dynamische binding wordt ook wel late binding genoemd.
Executie
De uitvoeringssnelheid is hoog bij statische binding. De uitvoersnelheid is laag bij dynamische binding.
Voorbeeld
Statische binding wordt gebruikt bij overbelasting van de methode. Dynamische binding wordt gebruikt bij het overschrijven van methoden.

Samenvatting - Statische binding versus dynamische binding

Er is een verband tussen een methodeaanroep en een methodedefinitie. Het staat bekend als bindend. Er zijn twee soorten bindingen: statische binding en dynamische binding. Het verschil tussen statische binding en dynamische binding is dat bij statische binding de binding wordt opgelost tijdens het compileren, terwijl dynamische binding wordt opgelost tijdens de runtime, wat het werkelijke tijdstip van uitvoering is. Aangezien de vereiste informatie vóór runtime wordt verstrekt, wordt statische binding snel uitgevoerd in vergelijking met dynamische binding.

Download de pdf van Static Binding vs Dynamic Binding

U kunt de pdf-versie van dit artikel downloaden en offline gebruiken volgens de citatienota. Download de pdf-versie hier: Verschil tussen statische binding en dynamische binding

Aanbevolen: