Inleiding tot statische binding en dynamische binding

Dit zijn twee soorten binding. Binding verwijst naar de associatie van methode-aanroep naar methode-instantie. Bij statische binding gebeurt alle toewijzing en verklaring op het moment van compilatie. Ze hebben meerdere voor- en nadelen over elkaar. Wat de prestaties betreft, is statische binding beter dan de dynamische binding van de methoden en variabelen. Statische binding is ook bekend als vroege binding. Zoals we allemaal weten, gebeurt de methode Binden zoals statisch, privé en finaal tijdens de compilatie, terwijl in de dynamische bindingcompiler niet wordt bepaald welke methode wordt aangeroepen.
Onderstaand voorbeeld is een beter voorbeeld om te begrijpen

Voorbeeld 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..");
)
)

In het hierboven gegeven voorbeeld kunnen we zien hoe statische binding is bedoeld om overbelasting van de klasse te voorkomen.

Onderstaand gegeven voorbeeld laat zien hoe Dynamic Binding werkt, hier overschrijft de methode van de kindklasse de bovenliggende klasse

Voorbeeld 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..");
)
)

In dit voorbeeld is statisch niet aanwezig in de startmethode onder de methode voor de bovenliggende en onderliggende klasse, dus de methode met dezelfde naam vervangt de bovenliggende bovenliggende methode. Het gebeurt hierdoor.

In de bovenstaande screenshot wordt de output van het programma gegeven.

Waarom statische binding en dynamische binding?

  1. Het is noodzakelijk dat de programmering verschillende situaties aankan door het gebruik van statische en dynamische binding.
  2. Compile-time binding is bekend als vroege binding, dwz dit betekent wanneer dingen moeten worden aangegeven op het moment van compilatie (in het begin) van de uitvoering van het programma. In Dynamic Binding vindt Binding plaats tijdens de uitvoeringstijd die ook bekend staat als Late Binding.
  3. Methode & variabelen, gedefinieerd als statisch, finaal en privé verwijst naar de statische binding, terwijl virtuele methoden die binding tijdens runtime plaatsvindt, bekend staan ​​als Dynamic Binding.
  4. Methode Overbelasting / Operator Overbelasting maakt gebruik van statische binding, dus het is een van de beste voorbeelden, terwijl Overriding gebruik maakt van Dynamic, dus het staat bekend als het beste voorbeeld van Dynamic Binding.
  5. Hierin wordt nooit een echt object gebruikt, terwijl een echt object wordt gebruikt in de dynamische binding.

Voorbeelden

In het onderstaande voorbeeld kunnen we zien hoe statische binding gebeurt

Voorbeeld 1

// Implementatie van bovenliggende klasse

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();
)
)

In het hierboven gegeven programma is col de referentievariabele van type class Colony die naar het object van class Colony verwijst. col2 is ook de referentievariabele van de typeklasse Colony maar wijst naar het object van de klasse Building. Wanneer de compilatie plaatsvindt, controleert de bindende compiler nooit het type object, maar alleen het type referentievariabele.

In het bovenstaande programma, zoals col .startElectricity (), controleert de compiler of de definitie van de start elektriciteit () methode bestaat in de klasse Colony of niet, omdat col van het type Colony Colony is. Evenzo voor de aanroep van de methode col2.startElectricity (), wordt gecontroleerd of de methode start elektriciteit () aanwezig is in de klasse Colony of niet, omdat col2 ook van het type Colony is. Het controleert niet naar welk object col, col2 wijst. dit type binding staat bekend als statische binding.

Output:

De hierboven gegeven output van het programma laat zien hoe statische leden worden gebruikt om het negeren te voorkomen.

Voorbeeld 2

In het onderstaande voorbeeld kunnen we zien hoe dynamische binding optreedt tijdens runtime

// Implementatie van bovenliggende klasse

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();
)
)

In het hierboven gegeven programma is alles hetzelfde als in een statisch voorbeeldprogramma, maar in dit voorbeeld wordt lid van de methode "statisch" verwijderd. Tijdens dit wordt de methode van het hoofdobject waarnaar col.startElectricity () verwijst, aangeroepen. Terwijl voor col2.startElectricity () wordt aangeroepen, wordt de methode van het hoofdobject waarnaar col2 verwijst, aangeroepen. Dit type binding staat bekend als Dynamic Binding.

Output:

Voordeel

  1. De uitvoering van statische binding is efficiënter en sneller dan dynamisch. Deze Binding-compiler weet dat dit soort methoden niet kan worden genegeerd.
  2. In de statische binding wordt het type gebruikt, terwijl dynamische binding objecten voor bindingen gebruikt.
  3. Een van de grote voordelen van Dynamic Binding is flexibiliteit, vanwege de flexibiliteit kan een enkele functie verschillende typen objecten tijdens runtime verwerken.
  4. In Static Binding blijft alle informatie die nodig is vóór de compilatie, terwijl in Dynamic Binding geen informatie beschikbaar blijft vóór de uitvoeringstijd.
  5. Statische binding kan plaatsvinden met behulp van normale functies, terwijl dynamische binding kan worden bereikt met behulp van de virtuele functies.

Conclusie

Dit zijn enkele van de belangrijke concepten van objectgeoriënteerd programmeren. Binding verwijst naar de uitvoering van de code. Het gebeurt tijdens het compileren, terwijl Dynamic Binding gebeurt tijdens de uitvoering. Definitie, verklaring en toepassingsgebied, dit zijn drie belangrijke pijlers van statische binding, terwijl in Dynamic Binding, naam van binding & levensduur van bindende zaken.

Aanbevolen artikelen

Dit is een gids voor statische binding en dynamische binding. Hier bespreken we de introductie, het gebruik en de voordelen. U kunt ook onze andere voorgestelde artikelen doornemen voor meer informatie–

  1. Soorten webhosting
  2. Overbelasting en opheffen in Java
  3. AngularJS-richtlijnen
  4. Polymorfisme op Java
  5. JavaScript statische methode | Werken | Voorbeelden