Uvod u statičko i dinamičko vezanje

To su dvije vrste vezanja. Vezivanje se odnosi na povezanost poziva metode s tijelom metode. U statičkom uvezivanju, sve dodjele i deklaracije događaju se u trenutku sastavljanja. Imaju višestruke prednosti i nedostatke jedni protiv drugih. U izvedbi, statičko vezivanje je bolje od dinamičkog vezivanja metoda i varijabli. Statičko vezanje poznato je i kao rano vezanje. Kao što znamo, metode Povezivanje poput statičkog, privatnog i konačnog događa se tijekom vremena prevođenja, dok u sastavljaču dinamičkog vezanja ne odlučuje koja će se metoda pozivati.
Ispod je primjer bolji primjer za razumijevanje

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

U gore navedenom primjeru možemo vidjeti kako je statičko vezanje namijenjeno sprječavanju preopterećenja klase.

Ispod navedenog primjera prikazat će se kako djeluje dinamičko vezanje, ovdje metoda nadređene klase nadjačava roditeljsku klasu

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

U ovom primjeru, statička nije prisutna u metodi starta pod metodom razreda roditelja i djece, tako da će metoda s istim nazivom nadjačati metodu nadređene klase. To se događa zbog toga.

U gore navedenom snimku dat je izlaz programa.

Zašto statičko i dinamičko vezivanje?

  1. Programiranje je potrebno za obradu različitih situacija pomoću statičkog i dinamičkog vezivanja.
  2. Povezujuće vrijeme sastavljanja poznato je kao rano uvezivanje, tj. To znači kada je potrebno deklarirati stvari u trenutku sastavljanja (na samom početku) izvršenja programa. Kod dinamičkog uvezivanja, vezanje se odvija u vrijeme izvođenja koje je poznato i kao kasno uvezivanje.
  3. Metoda i varijable, definirane kao statično, krajnje i privatno, odnosi se na statičko povezivanje, dok su virtualne metode povezivanja koje se odvijaju u vrijeme izvođenja poznate kao dinamičko vezanje.
  4. Metoda Overloading / Operator Overloading koristi statičko vezivanje, tako da je to jedan od najboljih primjera dok Overriding koristi Dynamic, pa je poznat i kao najbolji primjer dinamičkog vezanja.
  5. Pritom se stvarni objekt nikada ne koristi dok se stvarni objekt koristi u dinamičkom povezivanju.

Primjeri

U niže navedenom primjeru možemo vidjeti kako se događa statičko vezivanje

Primjer 1

// Provedba roditeljske klase

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

U gore navedenom programu, col je referentna varijabla vrste klase Colony koja upućuje na objekt klase Colony. col2 je također referentna varijabla vrste klase tipa Colony, ali upućuje na objekt klase Building. Kad se kompilacija odvija, dok obvezujući prevoditelj nikada ne provjerava vrstu objekta, on samo provjerava vrstu referentne varijable.

U gornjem programu, kao što je col .startElectricity (), prevoditelj provjerava postoji li definicija metode start elektriciteta () u klasi Colony ili ne, jer je col vrsta klase Colony. Slično je i za poziv metode Col2.startElectricity (), provjerava je li metoda pokretanja električne energije () prisutna u klasi Colony ili ne, jer je col2 takođe klasa tipa Colony. Ne provjerava na koji objekt col, col2 pokazuje. ova vrsta vezivanja poznata je kao statično vezanje.

Izlaz:

Gore navedeni izlaz programa pokazuje kako se koriste statički članovi za sprečavanje prebacivanja.

Primjer 2

U dolje navedenom primjeru možemo vidjeti kako se pojavljuje dinamičko vezivanje tijekom vremena izvođenja

// Provedba roditeljske klase

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

U gore navedenom programu sve je isto kao u programu s statičkim primjerom, ali u ovom se primjeru uklanja član metode "statički". Tijekom toga pozivaće se metoda glavnog objekta na koji se ukazuje col.startElectricity (). Dok se za poziv col2.startElectricity () zove glavna metoda glavnog objekta na koji je col2 usmjeren. Ova vrsta vezivanja poznata je kao dinamičko vezanje.

Izlaz:

Prednost

  1. Izvođenje statičkog uvezivanja je učinkovitije i brže od dinamičkog. Ovaj sastavljač vezanja zna da se ove vrste metoda ne mogu nadjačati.
  2. U statičkom uvezivanju koristi se vrsta, dok dinamično uvezivanje koristi objekte za vezivanje.
  3. Jedna od glavnih prednosti dinamičkog uvezivanja je fleksibilnost, budući da jedna funkcija može upravljati različitim vrstama objekata tijekom izvođenja.
  4. U statičkom uvezivanju, sve informacije potrebne prije vremena kompilacije, dok u dinamičkom uvezivanju, prije pokretanja ne ostaju nikakve informacije.
  5. Statično povezivanje može se odvijati pomoću normalnih funkcija, dok se dinamičko vezivanje može postići pomoću virtualnih funkcija.

Zaključak

Ovo su neki od važnih koncepata objektno orijentiranog programiranja. Vezivanje se odnosi na izvršenje koda. To se događa u vrijeme sastavljanja, dok se dinamično vezanje događa u vrijeme izvođenja. Definicija, deklaracija i opseg deklaracije, to su tri važna stupa statičkog vezivanja, dok je u dinamičkom uvezivanju naziv vezivanja i vijek trajanja obvezujućih stvari.

Preporučeni članci

Ovo je vodič za statičko i dinamičko vezivanje. Ovdje smo raspravljali o uvodu, upotrebi i prednostima. Možete i proći kroz naše druge predložene članke da biste saznali više -

  1. Vrste web hostinga
  2. Preopterećenje i preglasavanje u Javi
  3. AngularJS direktive
  4. Polimorfizam u Javi
  5. Statička metoda JavaScript | Radni | Primjeri

Kategorija: