Introduktion till statisk bindning och dynamisk bindning

Dessa är två typer av bindning. Bindning hänvisar till föreningen av metodrop till metodkropp. I statisk bindning sker all uppdrag & deklaration vid sammanställningen. De har flera fördelar och nackdelar över varandra. I prestanda är statisk bindning bättre än den dynamiska bindningen av metoderna och variablerna. Statisk bindning är också känd som tidig bindning. Som allt vi vet, händer metoder som bindning som statisk, privat och slutlig under kompileringstid i den dynamiska bindningskompilatorn inte bestämmer vilken metod som kommer att kallas.
Nedanstående exempel är ett bättre exempel att förstå

Exempel 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 ovanstående exempel kan vi se hur statisk bindning är avsedd att förhindra överbelastning av klassen.

Nedanstående exempel kommer att visa hur Dynamic Binding fungerar, här underskriver barnklassmetoden föräldraklassen

Exempel 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 det här exemplet finns det inte statisk i startmetoden under metoden för förälder och barn, så metoden med samma namn kommer att åsidosätta föräldraklassmetoden. Det händer på grund av detta.

I den ovan givna skärmdumpen ges programmets utgång.

Varför statisk bindning och dynamisk bindning?

  1. Det är nödvändigt för programmeringen att hantera olika situationer med hjälp av statisk och dynamisk bindning.
  2. Bindning av kompileringstid kallas Early Binding, dvs Detta betyder vid behov att deklarera saker vid tidpunkten för sammanställningen (i början) av programmets körning. I Dynamic Binding sker bindning vid den körtid som också kallas Late Binding.
  3. Metod och variabler, definierade som statiska, slutliga och privata hänvisar till statisk bindning medan virtuella metoder som bindning sker vid körning kallas Dynamisk bindning.
  4. Metod Överbelastning / Operatör Överbelastning använder statisk bindning så att det är ett av de bästa exemplen på det medan Övervägning använder Dynamic så det är känt som det bästa exemplet på Dynamisk bindning.
  5. I detta används aldrig ett riktigt objekt medan det verkliga objektet används i den dynamiska bindningen.

exempel

I nedanstående exempel kan vi se hur statisk bindning sker

Exempel 1

// Föräldraklassimplementering

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 ovan givna programmet är kol referensvariabeln för typklass Koloni som pekar mot objektet för klass Koloni. col2 är också referensvariabeln för typklass Koloni men pekar på objektet med klass Building. När sammanställningen äger rum medan bindningskompilatorn aldrig kontrollerar typen av objekt kontrollerar den bara referensvariabelns typ.

I ovanstående program, till exempel col .startElectricity (), kontrollerar kompilatorn huruvida start-el () -metoddefinition finns i klassen Colony eller inte eftersom col är klass Colony-typ. På liknande sätt för col2.startElectricity () -metodsamtal, kontrollerar det om startelektricitet () -metoden finns i klass Colony eller inte eftersom col2 också är klass Colony-typ. Det kontrollerar inte vilket objekt col, col2 som pekar. denna typ av bindning kallas statisk bindning.

Produktion:

Den ovan angivna utgången från programmet visar hur statiska medlemmar används för att förhindra åsidosättande.

Exempel 2

I nedanstående exempel kan vi se hur dynamisk bindning sker under körning

// Föräldraklassimplementering

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 ovan angivna programmet är allt detsamma som i ett statiskt exempelprogram men i detta exempel tas medlemmet av metoden "statisk" bort. Under detta kommer metoden för huvudobjektet som col.startElectricity () pekar att kallas till. När det gäller col2.startElectricity () -samtal kommer metoden för huvudobjektet till vilket col2 pekar att anropas. Denna typ av bindning kallas Dynamic Binding.

Produktion:

Fördel

  1. Utförande av statisk bindning är effektivare och snabbare än Dynamic. Denna bindande kompilator vet att dessa typer av metoder inte kan åsidosättas.
  2. I den statiska bindningen används typen medan Dynamic Binding använder objekt för bindningar.
  3. En av de största fördelarna med Dynamic Binding är flexibilitet, på grund av flexibiliteten som en enda funktion kan hantera olika typer av objekt under körning.
  4. I statisk bindning förblir all information som behövs före sammanställningstiden medan den är i dynamisk bindning ingen information kvar innan körningstid.
  5. Statisk bindning kan ske med normala funktioner medan dynamisk bindning kan uppnås med hjälp av virtuella funktioner.

Slutsats

Detta är några av de viktiga begreppen för objektorienterad programmering. Bindning hänvisar till körning av koden. Det händer vid tidpunkten för sammanställning medan Dynamic Binding sker vid körningstiden. Definition, deklaration & deklarationens omfattning, dessa är tre viktiga pelare för statisk bindning medan de är i dynamisk bindning, namn på bindning och livslängd för bindande frågor.

Rekommenderade artiklar

Detta är en guide till statisk bindning och dynamisk bindning. Här diskuterar vi introduktionen, användningarna och fördelarna. Du kan också gå igenom våra andra artiklar som föreslås för att lära dig mer–

  1. Typer av webbhotell
  2. Överbelastning och överbestyrning i Java
  3. AngularJS-direktiv
  4. Polymorfism i Java
  5. Statisk metod för JavaScript | Arbetar | exempel

Kategori: