Különbség A Statikus és A Dinamikus Kötés Között

Tartalomjegyzék:

Különbség A Statikus és A Dinamikus Kötés Között
Különbség A Statikus és A Dinamikus Kötés Között

Videó: Különbség A Statikus és A Dinamikus Kötés Között

Videó: Különbség A Statikus és A Dinamikus Kötés Között
Videó: Számítógép hálózatok 11. gyakorlat (2017): Statikus és dinamikus NAT 2024, Lehet
Anonim

Fő különbség - Statikus kötés vs dinamikus kötés

A programozási nyelvek, például a Java és a C #, támogatják az objektumorientált programozást (OOP). Lehetővé teszi szoftverek felépítését objektumok felhasználásával. Számos objektum található egy szoftverrendszerben vagy egy programban. Ezek az objektumok attribútumokkal és módszerekkel rendelkeznek. Az attribútumok leírják a jellemzőket. A módszerek leírják az objektum által végrehajtható műveleteket. Az adatokat módszerek segítségével továbbítják az objektumokon. A szükséges értékeket metódushívásokon keresztül küldjük paraméterekkel. A módszer tényleges megvalósítása a módszer meghatározásában található. Van kapcsolat a metódushívás és a metódefiníció között. Kötésnek nevezik. Kétféle kötés létezik. Statikus és dinamikus kötésűek. A legfontosabb különbség a statikus kötés és a dinamikus kötés között az, hogy a statikus kötésnél a kötés a fordítási időben, míg a dinamikus kötés a futási időben oldódik fel,amely a végrehajtás tényleges ideje. Ez a cikk a két kötési mechanizmus közötti különbséget tárgyalja.

TARTALOM

1. Áttekintés és kulcsfontosságú különbség

2. Mi a statikus kötés

3. Mi a dinamikus kötés

4. A statikus és a dinamikus kötés hasonlóságai

5. Egymás melletti összehasonlítás - Statikus kötés és dinamikus kötés táblázatos formában

6. Összefoglalás

Mi a statikus kötés?

A kötés a kapcsolat a metódushívás és a metódefiníciók között.

Különbség a statikus és a dinamikus kötés között
Különbség a statikus és a dinamikus kötés között

01. ábra: Statikus és dinamikus kötés

Olvassa el az alábbi Java-ban írt programot.

nyilvános A osztály {

public void módszer1 () {

System.out.println („1. módszer”);

}

public void method2 () {

System.out.println („2. módszer”);

}

public static void main (String érvel) {

A obj = új A ();

obj.met1 ();

obj.met2 ();

}

}

A fenti program szerint létrejön egy A típusú objektum. Ezután a metódust 1 és a metódust 2 hívjuk meg. Kötelezőnek nevezzük, hogy melyik módszert kell végrehajtásra hívni. Az obj.method1 () utasítás meghívja a method1 () és az obj.method2 () metódust2 (). Ez a link kötelező.

A statikus kötésben a kötést fordításkor oldja meg a fordító. Korai kötésként is ismert. A kötés még egy program futtatása előtt történik. A statikus kötés a módszer túlterhelésében fordul elő. Olvassa el az alábbi Java-ban írt programot.

public void Számítás {

public void összeg (int x, int y) {

System.out.println („Összeg“, x + y);

}

public void összeg (dupla x, dupla y) {

System.out.println („Összeg“, x + y);

}

public static void main (String érvel) {

Számítás cal = új Számítás ();

cal.sum (2,3);

cal.sum (5,1, 6,4);

}

}

A fenti program szerint a két egész szám átadásakor a két egész számmal rendelkező metódust hívjuk meg. Két dupla érték átadásakor a két dupla értéknek megfelelő módszer kerül felhasználásra. Ez a kötési folyamat az összeállítás idején történik. A fordító tudja, hogy meg kell hívnia az összeg metódust két egész értékkel a cal.sum (2,3) értékre. A cal (5.1,6.4) esetében az összeg metódust két kettős értékkel hívja meg. Az összes szükséges információ futás előtt ismert, így növeli a program hatékonyságát és a végrehajtás sebességét.

Mi a dinamikus kötés?

A dinamikus kötésben a fordító nem oldja meg a kötést fordításkor. A kötés futási időben történik. Késői kötésként is ismert. A dinamikus kötés a módszer felülírása esetén történik. Lásd a Java-ban írt programot.

nyilvános osztály alakja () {

public void draw () {

System.out.println („Alakzat rajzolása”);

}

}

nyilvános osztály Kör () kiterjeszti az Alakot {

public void draw () {

System.out.println („Kör rajzolása”);

}

}

a háromszög () nyilvános osztály kiterjeszti az alakot {

public void draw () {

System.out.println („Háromszög rajzolása”);

}

}

nyilvános osztály teszt {

public static void main (String érvel) {

Alak s;

s = új forma ();

s.rajz ();

s = új kör ();

s.rajz ();

s = új háromszög ();

s.rajz ();

}

}

A fenti program szerint a Shape osztálynak van metódusrajza (). A Class Circle és a Class háromszög kiterjeszti a Shape osztályt. Az Osztálykör és a Háromszög örökölhetik a Shape osztály attribútumait és módszereit. Ezért a Shape osztály a szuper osztály vagy a szülő osztály. Az Osztálykör és az Osztályháromszög alosztályok vagy származtatott osztályok. Ezeknek az osztályoknak a draw () metódusuk is van a saját implementációikkal. Ezért a szuper osztályban a draw () metódust felülírják.

A fő módszerben különböző objektumokat hívnak meg. Van egy Shape típusú referencia változó, amely s. Ezután s meghívja a módszert az adott osztálynak megfelelően. Fordításkor a fordító csak a szuper osztályos rajzolási módszerre hivatkozik. Amikor a tényleges végrehajtás megkezdődik, az különböző rajzolási módszerek végrehajtásához vezet. Először s a Shape típusú objektumra mutat. Ezért a Shape osztályban felhívja a rajzolási módszert. Ekkor az s a Kör típusú objektumra mutat, és a Kör osztály felhívási metódusát fogja meghívni. Végül s hivatkozni fog a Háromszög típusú objektumra, és a Háromszög osztályban felhívja a húzási módszert. Annak ellenére, hogy a referencia változó Shape típusú, a kötés történetesen az objektumtípustól függ. Ezt a koncepciót Dinamikus Kötés néven ismerjük. Az információkat futási időben adják meg,így a végrehajtás sebessége a statikus kötéshez képest lassabb.

Mi a hasonlóság a statikus és a dinamikus kötés között?

Mindkettő kapcsolódik egy polimorfizmushoz, amely lehetővé teszi egy objektum többféle viselkedését

Mi a különbség a statikus és a dinamikus kötés között?

Különböző cikk a táblázat előtt

Statikus kötés vs dinamikus kötés

A statikus kötés az a kötés típusa, amely összegyűjti az összes szükséges információt a függvény meghívásához fordítási idő alatt. A Dinamikus kötés az a kötés, amely összegyűjti az összes szükséges információt a függvény meghívásához futás közben.
Kötés ideje
A statikus kötés fordítási időben történik. A dinamikus kötés futási időben történik.
Funkcionalitás
A statikus kötés a kötéshez típusinformációkat használ. A Dinamikus kötés objektumokat használ a kötés feloldására.
Tényleges objektum
A statikus kötés nem használ tényleges objektumot a kötéshez. Dinamikus kötés, a tényleges objektumot használja a kötéshez.
Szinonimák
A statikus kötést korai kötésnek is nevezik. A dinamikus kötést késői kötésnek is nevezik.
Végrehajtás
A végrehajtási sebesség statikus kötésben gyors. A végrehajtási sebesség dinamikus kötésben alacsony.
Példa
Statikus kötést alkalmaznak a módszer túlterhelésében. A módszer felülírása során dinamikus kötést alkalmaznak.

Összegzés - Statikus kötés vs dinamikus kötés

Van kapcsolat a metódushívás és a metódefiníció között. Kötésnek nevezik. Kétféle kötés létezik, az úgynevezett statikus és dinamikus kötés. A statikus kötés és a dinamikus kötés közötti különbség az, hogy a statikus kötésnél a kötés a fordítás idején, míg a dinamikus kötés a futás idején oldódik meg, amely a végrehajtás tényleges ideje. Mivel a szükséges információkat a futási idő előtt megadják, a statikus kötés gyors végrehajtásban van, összehasonlítva a dinamikus kötéssel.

Töltse le a Statikus kötés vs dinamikus kötés PDF fájlt

A cikk PDF-verzióját letöltheti, és offline célokra is használhatja, az idézési megjegyzés szerint. Töltse le a PDF verziót itt: Különbség a statikus és a dinamikus kötés között

Ajánlott: