Forskellen Mellem Statisk Binding Og Dynamisk Binding

Indholdsfortegnelse:

Forskellen Mellem Statisk Binding Og Dynamisk Binding
Forskellen Mellem Statisk Binding Og Dynamisk Binding

Video: Forskellen Mellem Statisk Binding Og Dynamisk Binding

Video: Forskellen Mellem Statisk Binding Og Dynamisk Binding
Video: Kemiske bindinger 2024, April
Anonim

Nøgleforskel - Statisk binding vs dynamisk binding

Programmeringssprog som Java og C # understøtter Object Oriented Programming (OOP). Det giver mulighed for at bygge software ved hjælp af objekter. Der er mange objekter i et softwaresystem eller et program. Disse objekter har attributter og metoder. Attributter beskriver karakteristika. Metoder beskriver de handlinger, der kan udføres af objektet. Data sendes gennem objekter ved hjælp af metoder. De krævede værdier sendes gennem metodeopkald med parametre. Den egentlige metodeimplementering er i metodedefinitionen. Der er en sammenhæng mellem en metodeopkald og en definition af metoden. Det er kendt som bindende. Der er to typer bindinger. De er statisk binding og dynamisk binding. Hovedforskellen mellem statisk binding og dynamisk binding er, at i statisk binding løses bindingen på kompileringstidspunktet, mens dynamisk binding løses ved kørselstidspunktet,hvilket er det faktiske tidspunkt for udførelse. Denne artikel diskuterer forskellen mellem disse to bindingsmekanismer.

INDHOLD

1. Oversigt og nøgleforskel

2. Hvad er statisk binding

3. Hvad er dynamisk binding

4. Ligheder mellem statisk binding og dynamisk binding

5. Sammenligning side om side - Statisk binding vs dynamisk binding i tabelform

6. Resumé

Hvad er statisk binding?

Binding er forbindelsen mellem en metodeopkald og metodedefinitioner.

Forskellen mellem statisk binding og dynamisk binding
Forskellen mellem statisk binding og dynamisk binding

Figur 01: Statisk binding og dynamisk binding

Se nedenstående program skrevet i Java.

offentlig klasse A {

offentlig ugyldighedsmetode1 () {

System.out.println (“Metode1”);

}

offentlig ugyldighedsmetode2 () {

System.out.println (“Method2”);

}

public static void main (String args) {

A obj = ny A ();

obj.method1 ();

obj.method2 ();

}

}

I henhold til ovenstående program oprettes et objekt af type A. Derefter kaldes metode1 og metode2. At identificere, hvilken metode der skal kræve udførelse, kaldes bindende. Erklæring obj.method1 () kalder metode1 () og obj.method2 () kalder method2 (). Dette link er bindende.

Ved statisk binding løses binding ved kompileringstidspunktet af compileren. Det er også kendt som tidlig binding. Binding sker inden et program rent faktisk kører. Statisk binding sker ved overbelastning af metoden. Se nedenstående program skrevet i Java.

offentlig tomrumsberegning {

offentlig ugyldig sum (int x, int y) {

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

}

offentlig ugyldig sum (dobbelt x, dobbelt y) {

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

}

public static void main (String args) {

Beregning cal = ny beregning ();

kal. sum (2,3);

kal.sum (5.1, 6.4);

}

}

I henhold til ovenstående program vil metoden med to heltal blive påberåbt, når de passerer de to heltal. Når du sender to dobbeltværdier, påkræves metoden, der svarer til to dobbeltværdier. Denne bindingsproces finder sted på tidspunktet for kompilering. Compileren ved, at den skal kalde summetoden med to heltalværdier for cal.sum (2,3). For cal (5.1,6.4) kalder den summetoden med to dobbeltværdier. Alle krævede oplysninger er kendt før runtime, så det øger programmets effektivitet og eksekveringshastighed.

Hvad er dynamisk binding?

I dynamisk binding løser kompilatoren ikke bindingen på kompileringstidspunktet. Binding finder sted ved kørselstid. Det er også kendt som sen binding. Dynamisk binding finder sted ved tilsidesættelse af metoden. Se programmet skrevet i Java.

offentlig klasseform () {

offentlig ugyldig tegning () {

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

}

}

public class Circle () udvider form {

offentlig ugyldig tegning () {

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

}

}

public class Triangle () udvider form {

offentlig ugyldig tegning () {

System.out.println ("Tegn trekant");

}

}

offentlig klassetest {

offentlig statisk ugyldig hoved (String args) {

Form s;

s = ny form ();

s. tegne ();

s = ny cirkel ();

s. tegne ();

s = ny trekant ();

s. tegne ();

}

}

I henhold til ovenstående program har klasse Shape en metodetegning (). Klassecirkel og klasse Triangle udvider formklasse. Klassecirkel og klassetrekant kan arve attributterne og metoderne til klasseform. Derfor er Class Shape superklassen eller forældreklassen. Klassecirkel og klassetrekant er underklasser eller afledte klasser. Disse klasser har også draw () metode med deres egne implementeringer. Derfor er draw () -metoden i superklassen tilsidesat.

I hovedmetoden påberåbes forskellige objekter. Der er en referencevariabel af formtype, som er s. Derefter påkalder s metoden i henhold til den specifikke klasse. På kompileringstidspunktet henviser kompilatoren kun superklassetegnemetoden. Når den aktuelle udførelse begynder, vil det føre til udførelsen af forskellige tegnemetoder. Først peger s på objektet af typen Shape. Derfor påkalder det tegnemetoden i figurklasse. Derefter peger s på objektet af typen Circle, og det påberåber sig tegnemetoden i Circle class. Endelig henviser s til objektet af typen Trekant, og det vil påkalde tegningsmetoden i Trekantklasse. Selvom referencevariablen er af typen Shape, afhænger bindingen tilfældigt af objekttypen. Dette koncept er kendt som Dynamic Binding. Oplysningerne gives ved kørselstid,så udførelseshastigheden er langsommere sammenlignet med statisk binding.

Hvad er ligheden mellem statisk binding og dynamisk binding?

Begge disse er relateret til en polymorfisme, der gør det muligt for et objekt at opføre sig på flere måder

Hvad er forskellen mellem statisk binding og dynamisk binding?

Diff artikel midt foran bordet

Statisk binding vs dynamisk binding

Statisk binding er den type binding, der samler alle nødvendige oplysninger for at ringe til en funktion under kompileringstiden. Dynamisk binding er den type binding, der samler alle nødvendige oplysninger for at ringe til en funktion i løbet af løbetiden.
Tid for binding
Statisk binding finder sted på kompileringstidspunktet. Dynamisk binding finder sted ved kørselstid.
Funktionalitet
Statisk binding bruger typeoplysninger til binding. Dynamic Binding bruger objekter til at løse for at binde.
Faktisk objekt
Statisk binding bruger ikke et faktisk objekt til binding. Dynamisk binding, brug det egentlige objekt til binding.
Synonymer
Statisk binding er også kendt som tidlig binding. Dynamisk binding kaldes også sen binding.
Udførelse
Udførelseshastigheden er hurtig i statisk binding. Udførelseshastigheden er lav i dynamisk binding.
Eksempel
Statisk binding bruges til metodeoverbelastning. Dynamisk binding anvendes i tilsidesættelse af metoden.

Resumé - Statisk binding mod dynamisk binding

Der er en sammenhæng mellem en metodeopkald og en definition af metoden. Det er kendt som bindende. Der er to typer bindinger kaldet statisk binding og dynamisk binding. Forskellen mellem statisk binding og dynamisk binding er, at i statisk binding løses bindingen på kompileringstidspunktet, mens dynamisk binding løses ved kørselstidspunktet, hvilket er det faktiske tidspunkt for udførelse. Da de krævede oplysninger leveres inden kørselstid, udføres statisk binding hurtigt i sammenligning med dynamisk binding.

Download PDF'en af Statisk binding vs Dynamisk binding

Du kan downloade PDF-versionen af denne artikel og bruge den til offlineformål som pr. Citatnote. Download venligst PDF-versionen her: Forskellen mellem statisk binding og dynamisk binding

Anbefalet: