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.
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