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?
- 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.
- 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.
- 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.
- 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.
- 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
- 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.
- 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.
- 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.
- 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.
- 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 -
- A webtárhely típusai
- Túlterhelés és felülbírálás a Java-ban
- AngularJS irányelvek
- Polimorfizmus a Java-ban
- JavaScript statikus módszer | Munka | Példák