Introduktion til statisk binding og dynamisk binding

Dette er to typer bindinger. Binding refererer til sammenhængen mellem metodekald til metodekrop. I statisk binding sker al tildelingen og erklæringen på tidspunktet for udarbejdelsen. De har flere fordele og ulemper over hinanden. I ydeevne er statisk binding bedre end den dynamiske binding af metoder og variabler. Statisk binding er også kendt som Early Binding. Som alt hvad vi ved, sker metoder, der binder som statisk, privat og endelig over kompileringstid, mens de i den dynamiske bindingskompiler ikke bestemmer, hvilken metode der vil blive kaldt.
Nedenfor givet eksempel er et bedre eksempel at 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 givne eksempel kan vi se, hvordan statisk binding er beregnet til at forhindre overbelastning af klassen.

Nedenfor givet eksempel viser, hvordan Dynamic Binding fungerer, her tilsidesætter barneklasse-metoden forældreklassen

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 eksempel er statisk ikke til stede i startmetoden under overordnet & underordnet klassemetode, så metode med samme navn vil tilsidesætte overordnet klassemetode. Det sker på grund af dette.

I ovenstående skærmbillede er programmets output angivet.

Hvorfor statisk binding og dynamisk binding?

  1. Det er nødvendigt for programmeringen at håndtere forskellige situationer ved hjælp af statisk og dynamisk binding.
  2. Binding til kompileringstid kaldes Early Binding, dvs. Dette betyder, når det er nødvendigt at erklære ting på tidspunktet for kompilering (i begyndelsen) af programudførelsen. I Dynamic Binding finder binding sted på kørselstidspunktet, der også kaldes Late Binding.
  3. Metode & variabler, defineret som statisk, endelig og privat, refererer til statisk binding, mens virtuelle metoder, som binding finder sted på kørsel, er kendt som dynamisk binding.
  4. Metode Overbelastning / Operatør Overbelastning bruger statisk binding, så det er et af de bedste eksempler på det, mens Overriding bruger Dynamic, så det er kendt som det bedste eksempel på dynamisk binding.
  5. I dette bruges aldrig et reelt objekt, mens det rigtige objekt bruges i den dynamiske binding.

eksempler

I det nedenfor givne eksempel kan vi se, hvordan statisk binding sker

Eksempel 1

// Implementering af forældreklasse

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 givne program er col referencevariablen for typen klasse Koloni, der peger mod objektet for klassen Koloni. col2 er også referencevariablen for type klasse Colony, men peger på objektet med klasse Building. Når sammenstillingen finder sted, mens den bindende kompilator aldrig kontrollerer objektets type, kontrollerer den bare referencevariabeltypen.

I ovenstående program, såsom col .startElectricity (), kontrollerer kompilatoren, om startelektricitet () -metodedefinition findes i klassen Colony eller ikke, fordi col er af typen Colony-type. Tilsvarende for col2.startElectricity () -metodeopkald, det kontrollerer, om startelektricitet () -metoden er til stede i klasse Colony eller ikke, fordi col2 også er klasse Colony-typen. Det kontrollerer ikke, hvilket objekt col, col2 der peger på. denne type binding er kendt som statisk binding.

Produktion:

Den ovenfor givne output af programmet viser, hvordan statiske medlemmer bruges til at forhindre tilsidesættelse.

Eksempel 2

I det nedenfor givne eksempel kan vi se, hvordan dynamisk binding forekommer i løbet af køretid

// Implementering af forældreklasse

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 ovenstående program er alt det samme som i et statisk eksempelprogram, men i dette eksempel fjernes medlemmet af metoden “statisk”. I løbet af dette kaldes metoden til hovedobjektet, som col.startElectricity () peger på. Mens der kaldes col2.startElectricity (), kaldes metoden til det hovedobjekt, som col2 peger på. Denne type binding kaldes Dynamic Binding.

Produktion:

Fordel

  1. Static Binding-udførelse er mere effektiv og hurtigere end Dynamic. Denne bindende kompilator ved, at disse typer metoder ikke kan tilsidesættes.
  2. I den statiske binding bruges typen, mens Dynamic Binding bruger objekter til bindinger.
  3. En af de største fordele ved dynamisk binding er fleksibilitet på grund af fleksibiliteten, som en enkelt funktion kan håndtere forskellige typer af et objekt under kørsel.
  4. I statisk binding er al information, der er nødvendig før kompileringstiden, mens der er i dynamisk binding, ingen information tilbage tilgængelig før kørselstid.
  5. Statisk binding kan finde sted ved hjælp af normale funktioner, mens dynamisk binding kan opnås ved hjælp af de virtuelle funktioner.

Konklusion

Dette er nogle af de vigtige begreber inden for objektorienteret programmering. Binding refererer til udførelsen af ​​koden. Det sker på kompileringstidspunktet, mens dynamisk binding sker på kørselstidspunktet. Definition, erklæring og erklæringens omfang, dette er tre vigtige søjler med statisk binding, mens de er i dynamisk binding, navn på binding og levetid på bindende spørgsmål.

Anbefalede artikler

Dette er en guide til statisk binding og dynamisk binding. Her diskuterer vi introduktion, anvendelser og fordele. Du kan også gennemgå vores andre foreslåede artikler for at lære mere–

  1. Typer af webhosting
  2. Overbelastning og overstyring i Java
  3. AngularJS-direktiver
  4. Polymorfisme i Java
  5. Statisk JavaScript for JavaScript | Arbejder | eksempler

Kategori: