Bevezetés a statikus kötésbe és a dinamikus kötésbe

Ez a kötés két típusa. A kötés a módszerhívás asszociációját jelenti a módszer testéhez. Statikus kötés esetén az összes hozzárendelés és nyilatkozat a fordítás időpontjában történik. Több előnye és hátránya van egymással szemben. A teljesítmény szempontjából a statikus kötés jobb, mint a módszerek és a változók dinamikus kötése. A statikus kötést korai kötésnek is nevezik. Mint tudjuk, a kötési módszerek, mint statikus, privát és végleges, fordítási idő alatt történnek, míg a dinamikus kötési fordítóban nem dönt, hogy melyik módszert hívják.
Az alábbiakban egy jobb példa a megértésre

1. példa

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

A fenti példában láthatjuk, hogy a statikus kötés hogyan kívánja megakadályozni az osztály túlterhelését.

Az alább bemutatott példa bemutatja, hogyan működik a dinamikus kötés, itt a gyermek osztály módszer felülbírálja a szülő osztályt

2. példa

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

Ebben a példában a sztatikus nem létezik a szülő és gyermek osztály módszernél alkalmazott indítási módszernél, így az azonos nevű módszer felülbírálja a szülő osztály módszerét. Ennek köszönhetően.

A fenti képernyőképen megadjuk a program kimenetét.

Miért statikus kötés és dinamikus kötés?

  1. A programozáshoz szükséges a statikus és dinamikus kötés segítségével a különböző helyzetek kezelése.
  2. A compile-time kötés korai kötés néven ismert, vagyis ez azt jelenti, hogy mikor kell deklarálni a dolgokat a program végrehajtásának összeállításakor (a legelején). A Dinamikus kötés során a kötés a futási időben zajlik, amelyet késői kötésnek is nevezünk.
  3. A statikus, végleges és magántulajdonosként definiált módszer és változók a statikus kötésre vonatkoznak, míg a virtuális módszereket, amelyekhez a kötés futási időben zajlik, dinamikus kötésnek nevezzük.
  4. Módszer Túlterhelés / Operátor Túlterhelés statikus kötést alkalmaz, tehát ez az egyik legjobb példa erre, míg a felülbírálás a Dinamikát használja, tehát a dinamikus kötés legjobb példájaként ismert.
  5. Ebben valós objektumot soha nem használunk, míg valódi objektumot a dinamikus kötésben.

Példák

Az alábbiakban bemutatott példában láthatjuk, hogyan történik a statikus kötés

1. példa

// Szülő osztály megvalósítása

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

A fenti programban a col a Colony típusú osztály referenciaváltozója, amely a Colony osztály objektumára mutat. A col2 szintén a Colony típusú osztály referenciaváltozója, de az épület osztály objektumára mutat. Amikor az összeállítás megtörténik, míg a kötés-fordító soha nem ellenőrzi az objektum típusát, akkor csak a referenciaváltozó típusát ellenőrzi.

A fenti programban, mint például a col .startElectricity (), a fordító ellenőrzi, hogy létezik-e az indítáram () módszer meghatározása a kolónia osztályban, vagy sem, mert a col a kolónia osztálya. Hasonlóan a col2.startElectricity () módszerhíváshoz, ellenőrzi, hogy van-e indítóelektromos () módszer a kolónia osztályban, vagy sem, mert a col2 szintén kolónia típusú. Nem ellenőrzi, hogy a col, col2 melyik objektumra mutat. az ilyen típusú kötés statikus kötés néven ismert.

Kimenet:

A program fent megadott kimenete megmutatja, hogy a statikus tagokat hogyan használják a felülbírálás megakadályozására.

2. példa

Az alábbiakban bemutatott példában láthatjuk, hogyan történik a dinamikus kötés futási idő alatt

// Szülő osztály megvalósítása

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

A fenti programban minden ugyanaz, mint egy statikus példaprogramban, de ebben a példában a „statikus” módszer tagját eltávolítják. Ennek során meghívják annak a fő objektumnak a módszerét, amelyre a col.startElectricity () mutat. Míg a col2.startElectricity () hívásnál, annak a fő objektumnak a módszerét hívják meg, amelyre a col2 mutat. Az ilyen típusú kötés Dynamic Binding néven ismert.

Kimenet:

Előny

  1. A statikus kötés végrehajtása hatékonyabb és gyorsabb, mint a dinamikus. Ez a Binding fordító tudja, hogy az ilyen típusú módszereket nem lehet felülbírálni.
  2. A statikus kötésnél a típust használja, míg a dinamikus kötés objektumokat használ a kötéshez.
  3. A dinamikus kötés egyik fő előnye a rugalmasság, mivel a rugalmasság egyetlen funkcióval képes különféle típusú objektumokat kezelni futás közben.
  4. Statikus kötés esetén az összes információ szükséges a fordítási idő előtt, míg a dinamikus kötésnél nem áll rendelkezésre információ futási idő előtt.
  5. A statikus kötés normál függvényekkel valósítható meg, míg a dinamikus kötés a virtuális funkciókkal érhető el.

Következtetés

Ez az objektum-orientált programozás néhány fontos fogalma. A kötés a kód végrehajtására utal. Ez fordításkor történik, míg a dinamikus kötés futási időben. Meghatározás, nyilatkozat és a nyilatkozat hatálya: ezek a statikus kötés három fontos pillére, míg a dinamikus kötésben a kötés neve és a kötés élettartama.

Ajánlott cikkek

Ez egy útmutató a statikus kötéshez és a dinamikus kötéshez. Itt tárgyaljuk a bevezetést, a felhasználást és az előnyöket. A további javasolt cikkeken keresztül további információkat is megtudhat -

  1. A webtárhely típusai
  2. Túlterhelés és felülbírálás a Java-ban
  3. AngularJS irányelvek
  4. Polimorfizmus a Java-ban
  5. JavaScript statikus módszer | Munka | Példák

Kategória: