Introduksjon til statisk binding og dynamisk binding

Dette er to typer binding. Binding refererer til assosiasjonen til metodekall til metodekropp. I statisk binding skjer all oppgave og erklæring på tidspunktet for samlingen. De har flere fordeler og ulemper med hverandre. I ytelse er statisk binding bedre enn den dynamiske bindingen av metodene og variablene. Statisk binding er også kjent som Early Binding. Som alt vi vet, skjer metoder som bindes som statiske, private og endelige over kompileringstid mens de i den dynamiske bindingskompilatoren ikke bestemmer hvilken metode som skal kalles.
Nedenfor gitt eksempel er et bedre eksempel å forstå

Eksempel 1

public class StaticBindingExample (
public static void main(String args()) (
Vehicle veh = new MotorBike();
veh.start();
)
)
class Vehicle (
static void start() (
System.out.println("vehicle will start now..");
)
)
class MotorBike extends Vehicle (
static void start() (
System.out.println("Bike will start now..");
)
)

I det ovenfor gitte eksemplet kan vi se hvordan statisk binding er ment å forhindre overbelastning av klassen.

Nedenfor gitt eksempel vil vise hvordan Dynamic Binding fungerer, her overstyrer barneklasse-metoden foreldreklassen

Eksempel 2

public class StaticBindingExample (
public static void main(String args()) (
Vehicle veh = new MotorBike();
veh.start();
)
)
class Vehicle (
void start() (
System.out.println("vehicle will start now..");
)
)
class MotorBike extends Vehicle (
void start() (
System.out.println("Bike will start now..");
)
)

I dette eksempelet er ikke statisk til stede i startmetoden under foreldre- og barneklasse-metoden, og dermed vil metode med samme navn overstyre foreldreklasse-metoden. Det skjer på grunn av dette.

I det ovenfor gitte skjermdumpet gis utdataene fra programmet.

Hvorfor statisk binding og dynamisk binding?

  1. Det er nødvendig for programmeringen å håndtere forskjellige situasjoner ved bruk av statisk og dynamisk innbinding.
  2. Binding av kompileringstid er kjent som Early Binding, dvs. Dette betyr når det er behov for å erklære ting på tidspunktet for samlingen (helt i begynnelsen) av programutførelsen. I Dynamic Binding foregår Binding på kjøretiden som også er kjent som Late Binding.
  3. Metode og variabler, definert som statisk, endelig og privat, refererer til statisk binding, mens virtuelle metoder som Binding foregår på kjøretid, er kjent som Dynamic Binding.
  4. Metode Overbelastning / Operatør Overbelastning bruker statisk binding, så det er et av de beste eksemplene på det, mens Overriding bruker Dynamic, så det er kjent som det beste eksemplet på Dynamic Binding.
  5. I dette brukes aldri et ekte objekt mens ekte objekt brukes i dynamisk innbinding.

eksempler

I eksemplet nedenfor kan vi se hvordan statisk binding skjer

Eksempel 1

// Implementering av foreldreklasse

class Colony(
//Static method to start the electricity of the Colony
public static void start electricity()(
//printing the message here
System.out.println("Colony Electricity is On.");
)
)
//Child class implementation
class Building extends Colony(
//Static method to start the electricity of Building
public static void startElectricity()(
//printing the message here
System.out.println("Building Electricity is On.");
)
)
public class StaticBindingExample (
public static void main(String args()) (
//Creating object of the parent class type
Colony col = new Colony();
col.startElectricity();
//Creating object of the child class type
Colony col2 = new Building();
col2.startElectricity();
)
)

I det ovenfor gitte programmet er col referansevariabelen for type class Colony som peker mot objektet for class Colony. col2 er også referansevariabelen for typeklassen Koloni, men peker mot objektet for klassen Building. Når sammenstillingen finner sted, mens den bindende kompilatoren aldri sjekker typen, kontrollerer den bare referansevariabeltypen.

I programmet ovenfor, for eksempel col .startElectricity (), kontrollerer kompilatoren om definisjon av startelektrisitet () eksisterer i klassen Colony eller ikke fordi col er av typen Colony type. Tilsvarende for col2.startElectricity () -metodeanrop, sjekker det om startelektrisitet () -metoden er til stede i klasse Colony eller ikke fordi col2 også er klasse Colony-type. Det sjekker ikke til hvilket objekt col, col2 som peker. denne typen binding er kjent som statisk binding.

Produksjon:

Den ovenfor gitte utgangen fra programmet viser hvordan statiske medlemmer brukes for å forhindre overstyring.

Eksempel 2

I det nedenfor gitte eksemplet kan vi se hvordan dynamisk binding skjer i løpet av kjøretid

// Implementering av foreldreklasse

class Colony(
//method to start the electricity of the Colony
void startElectricity()(
//printing the message here
System.out.println("Colony Electricity is On.");
)
)
//Child class implementation
class Building extends Colony(
//method to start the electricity of Building
void startElectricity()(
//printing the message here
System.out.println("Building Electricity is On.");
)
)
public class StaticBindingExample (
public static void main(String args()) (
//Creating object of the parent class type
Colony col = new Colony();
col.startElectricity();
//Creating object of the child class type
Colony col2 = new Building();
col2.startElectricity();
)
)

I det ovenfor gitte programmet er alt det samme som i et statisk eksempelprogram, men i dette eksemplet fjernes medlemmet av metoden “statisk”. I løpet av dette vil metoden til hovedobjektet som col.startElectricity () peker til bli kalt. Når det gjelder samtale av col2.startElectricity (), vil metoden til hovedobjektet som col2 peker til bli kalt. Denne typen binding er kjent som Dynamic Binding.

Produksjon:

Fordel

  1. Static Binding-utførelse er mer effektiv og raskere enn Dynamic. Denne bindende kompilatoren vet at denne typen metoder ikke kan overstyres.
  2. I den statiske bindingen brukes typen mens Dynamic Binding bruker objekter for bindinger.
  3. En av de største fordelene med Dynamic Binding er fleksibilitet, på grunn av fleksibiliteten en enkelt funksjon kan håndtere forskjellige typer objekt under kjøretid.
  4. I statisk binding, all informasjon som trengs før kompileringstiden mens den er i Dynamic Binding, forblir ingen informasjon tilgjengelig før kjøretid.
  5. Statisk binding kan finne sted ved bruk av normale funksjoner mens dynamisk binding kan oppnås ved hjelp av de virtuelle funksjonene.

Konklusjon

Dette er noen av de viktige konseptene innen objektorientert programmering. Binding refererer til utførelsen av koden. Det skjer på kompileringstidspunktet mens Dynamic Binding skjer på kjøretiden. Definisjon, erklæring og omfang av deklarasjon, dette er tre viktige pilarer for statisk binding mens de er i dynamisk innbinding, navn på binding og levetid på bindende forhold.

Anbefalte artikler

Dette er en guide til statisk binding og dynamisk innbinding. Her diskuterer vi introduksjonen, bruken og fordelene. Du kan også gå gjennom de andre foreslåtte artiklene våre for å lære mer–

  1. Typer webhotell
  2. Overbelastning og overstyring i Java
  3. AngularJS-direktiver
  4. Polymorfisme i Java
  5. Static metoden for JavaScript | Arbeider | eksempler