Úvod do statického viazania a dynamického viazania

Jedná sa o dva typy väzby. Viazanie sa týka asociácie volania metódy na telo metódy. Pri statickej väzbe sa všetko priradenie a vyhlásenie uskutoční v čase zostavenia. Majú proti sebe niekoľko výhod a nevýhod. Vo výkone je statické viazanie lepšie ako dynamické viazanie metód a premenných. Statické viazanie je známe aj ako skoré viazanie. Ako všetci vieme, metódy Väzba ako statická, súkromná a konečná sa vyskytujú v priebehu kompilácie, zatiaľ čo v dynamickom viazaní kompilátor nerozhoduje, ktorá metóda sa bude volať.
Nižšie uvedený príklad je lepším príkladom na pochopenie

Príklad č. 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..");
)
)

V uvedenom príklade vidíme, ako má statická väzba zabrániť preťaženiu triedy.

Nižšie uvedený príklad zobrazí, ako dynamické viazanie funguje, tu metóda detskej triedy má prednosť pred rodičovskou triedou

Príklad č. 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..");
)
)

V tomto príklade statická hodnota nie je prítomná v počiatočnej metóde v rámci metódy rodičovskej a podradenej triedy, takže metóda s rovnakým názvom prepíše metódu rodičovskej triedy. Stáva sa to kvôli tomu.

Na vyššie uvedenej snímke je uvedený výstup programu.

Prečo statické viazanie a dynamické viazanie?

  1. Je potrebné, aby programovanie riešilo rôzne situácie pomocou statického a dynamického viazania.
  2. Väzba pri kompilácii je známa ako skorá väzba, tj to znamená, keď je potrebné deklarovať veci v čase kompilácie (na samom začiatku) vykonávania programu. V dynamickom viazaní sa väzba uskutočňuje v čase behu, ktorý je známy aj ako oneskorené viazanie.
  3. Metóda a premenné, definované ako statické, konečné a súkromné, sa vzťahujú na statické viazanie, zatiaľ čo virtuálne metódy, ktoré sa spájajú v čase vykonávania, sú známe ako dynamické viazanie.
  4. Metóda Preťaženie / Preťaženie operátora používa statické viazanie, takže je jedným z najlepších príkladov, zatiaľ čo Overriding používa dynamiku, takže je známy ako najlepší príklad dynamického viazania.
  5. V tomto prípade sa skutočný objekt nikdy nepoužíva, zatiaľ čo skutočný objekt sa používa v dynamickej väzbe.

Príklady

V nižšie uvedenom príklade vidíme, ako sa vyskytuje statická väzba

Príklad č. 1

// Implementácia materskej triedy

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

Vo vyššie uvedenom programe je col referenčnou premennou triedy triedy Colony a ukazuje na objekt triedy Colony. col2 je tiež referenčnou premennou triedy triedy Colony, ale ukazuje na objekt triedy Building. Keď sa kompilácia uskutoční, zatiaľ čo kompilátor väzieb nikdy nekontroluje typ objektu, len skontroluje typ referenčnej premennej.

Vo vyššie uvedenom programe, ako napríklad col .startElectricity (), kompilátor skontroluje, či definícia metódy start electricity () existuje v triede Colony alebo nie, pretože col je typ triedy Colony. Podobne pri volaní metódy col2.startElectricity () sa kontroluje, či je metóda start electricity () prítomná v triede Colony alebo nie, pretože col2 je tiež typ triedy Colony. Nekontroluje, na ktorý objekt col, col2 smeruje. tento typ väzby je známy ako statické viazanie.

Výkon:

Vyššie uvedený výstup programu ukazuje, ako sa používajú statické prvky na zabránenie nadradeniu.

Príklad č. 2

V nižšie uvedenom príklade vidíme, ako sa dynamické viazanie vyskytuje počas doby prevádzky

// Implementácia materskej triedy

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

Vo vyššie uvedenom programe je všetko rovnaké ako v statickom príklade, ale v tomto príklade je odstránený člen metódy „statický“. Počas toho bude volaná metóda hlavného objektu, na ktorý ukazuje col.startElectricity (). Zatiaľ čo pre volanie col2.startElectricity () bude volaná metóda hlavného objektu, na ktorý ukazuje col2. Tento typ väzby je známy ako dynamické viazanie.

Výkon:

výhoda

  1. Statické viazanie je efektívnejšie a rýchlejšie ako dynamické. Tento kompilátor väzieb vie, že tieto typy metód nemožno prepísať.
  2. V statickom viazaní sa typ používa, zatiaľ čo dynamické viazanie používa objekty na viazanie.
  3. Jednou z hlavných výhod dynamického viazania je flexibilita, pretože flexibilita môže jediná funkcia zvládnuť rôzne typy objektov za behu.
  4. V statickej väzbe sú všetky informácie potrebné pred kompiláciou, zatiaľ čo v dynamickej väzbe zostávajú k dispozícii pred spustením žiadne informácie.
  5. Statické viazanie sa môže uskutočňovať pomocou bežných funkcií, zatiaľ čo dynamické viazanie sa dá dosiahnuť pomocou virtuálnych funkcií.

záver

Toto sú niektoré z dôležitých konceptov objektovo orientovaného programovania. Viazanie sa vzťahuje na vykonanie kódu. Stáva sa to v čase kompilácie, zatiaľ čo dynamické viazanie sa deje v čase vykonávania. Definícia, deklarácia a rozsah deklarácie, to sú tri dôležité piliere statickej väzby, zatiaľ čo v dynamickej väzbe názov väzby a životnosť záväzných záležitostí.

Odporúčané články

Toto je príručka pre statické viazanie a dynamické viazanie. Tu diskutujeme o úvode, použití a výhodách. Viac informácií nájdete aj v ďalších navrhovaných článkoch -

  1. Druhy webhostingu
  2. Preťaženie a prekonanie v Jave
  3. AngularJS smernice
  4. Polymorfizmus v Jave
  5. Statická metóda JavaScript Pracovné Príklady

Kategórie: