A programozási nyelvek, például a Java és a C # támogatják az Object-Oriented Programming (OOP) programot. Ez lehetővé teszi a szoftverek építését objektumok felhasználásával. Számos objektum található egy szoftverrendszerben vagy egy programban. Ezeknek az objektumoknak vannak attribútumai és módszerei. Az attribútumok leírják a jellemzőket. A módszerek leírják azokat a műveleteket, amelyeket az objektum végrehajthat. Az adatokat objektumokon továbbítják módszerekkel. A szükséges értékeket paraméterekkel meghívott módszerhívások útján küldjük el. A tényleges módszer megvalósítása a módszer meghatározásában található. Van egy kapcsolat a módszerhívás és a módszerdefiníció között. Úgy ismert, mint kötelező. Kétféle kötés létezik. Statikus és dinamikus kötés. Az kulcs különbség a statikus kötés és a dinamikus kötés között ez, statikus kötésben a kötést a fordítási időben oldják meg, míg a dinamikus kötést a futási időben, amely a végrehajtás tényleges ideje. Ez a cikk a két kötelező mechanizmus közötti különbséget tárgyalja.
1. Áttekintés és a legfontosabb különbség
2. Mi a statikus kötés?
3. Mi a dinamikus kötés?
4. hasonlóságok a statikus kötés és a dinamikus kötés között
5. Összehasonlítás egymással - Statikus kötés vs dinamikus kötés táblázatos formában
6. Összegzés
A kötés a módszerhívás és a metódusdefiníciók közötti kapcsolat.
01. ábra: Statikus kötés és dinamikus kötés
Nézze meg az alábbi, Java nyelven írt programot.
A nyilvános osztály
public void method1 ()
System.out.println ( „method1”);
public void method2 ()
System.out.println ( „method2”);
nyilvános statikus void main (karakterlánc [] args)
A obj = új A ();
obj.method1 ();
obj.method2 ();
A fenti program szerint létrejön egy A típusú objektum. Ezután az 1. és a 2. módszert hívjuk. A végrehajtáshoz szükséges módszer azonosítását kötelező érvényűnek nevezzük. Az obj.method1 () utasítás az 1. módszert () és az obj.method2 () a 2. módszert fogja hívni. Ez a kapcsolat kötelező.
Statikus kötés esetén a kötést a fordító időben oldja meg. Más néven korai kötés. Az összerendelés a program tényleges futtatása előtt történik. A statikus kötés a módszer túlterhelésekor következik be. Nézze meg az alábbi, Java nyelven írt programot.
nyilvános érvénytelen számítás
nyilvános érvénytelen összeg (int x, int y)
System.out.println („Összeg”, x + y);
nyilvános érvénytelen összeg (dupla x, dupla y)
System.out.println („Összeg”, x + y);
nyilvános statikus void main (karakterlánc [] args)
Számítás cal = új számítás ();
cal.sum (2,3);
kalcium (5.1, 6.4);
A fenti program szerint a két egész szám átlépésekor a két egész számmal rendelkező módszert kell alkalmazni. Két kettős érték átadásakor a két kettős értéknek megfelelő módszert kell alkalmazni. Ez a kötési folyamat az összeállítás időpontjában következik be. A fordító tudja, hogy két egész számmal rendelkező sum módszerre kell hívnia a cal.sum (2,3) értéket. Cal (5.1,6.4) esetén az összeg módszerét kétszeres kettős értékkel hívja meg. Az összes szükséges információ a futási idő előtt ismert, így növeli a program hatékonyságát és a végrehajtási sebességet.
A dinamikus kötésnél a fordító nem oldja meg a kötést fordítási időpontban. A kötés futási időben történik. Más néven késői kötés. A dinamikus kötés a módszer felülbírálásában következik be. Lásd a Java nyelven írt programot.
nyilvános osztályú alak ()
nyilvános érvénytelen sorsolás ()
System.out.println (“Rajz alak”);
public class Circle () kiterjeszti az alakzatot
nyilvános érvénytelen sorsolás ()
System.out.println (“Draw circle”);
nyilvános osztályú háromszög () kiterjeszti az alakzatot
nyilvános érvénytelen sorsolás ()
System.out.println (“Háromszög rajzolása”);
nyilvános osztályú teszt
nyilvános statikus void main (karakterlánc [] args)
Alak s;
s = új alak ();
s.draw ();
s = új kör ();
s.draw ();
s = új háromszög ();
s.draw ();
A fenti program szerint az Class Shape módszerrel rajzol (). Class Circle és Class Triangle kiterjeszti az Shape osztályt. Az Osztály Kör és az Osztal Háromszög örökli az osztály Alak attribútumait és módszereit. Ezért az Class Shape a szuper osztály vagy a szülő osztály. Az Osztály Kör és az Osztály Háromszög alosztályok vagy származtatott osztályok. Ezeknek az osztályoknak saját (implementációjukkal) rendelkezik rajza () módszerük is. Ezért a szuper osztály Draw () módszerét felülbírálják.
A fő módszerben különböző objektumokat hívnak meg. Van egy Shape típusú referenciaváltozó, amely s. Ezután s meghívja a módszert az adott osztály szerint. A fordítás idején a fordító csak a szuper osztály rajzolási módszerére hivatkozik. Amikor a tényleges végrehajtás megkezdődik, ez különféle rajzolási módszerek végrehajtásához vezet. Először: s a Shape típusú objektumra mutat. Ezért meghívja a rajzolási módszert a Shape osztályban. Ezután az s a Circle típusú objektumra mutat, és meghívja a Circle osztály rajzolási módszerét. Végül s utal a Háromszög típusú objektumra, és meghívja a rajzolási módszert a Háromszög osztályban. Annak ellenére, hogy a referenciaváltozó Shape típusú, a kötés az objektumtípustól függ. Ez a koncepció dinamikus kötés néven ismert. Az információ futási időben kerül megadásra, így a végrehajtás sebessége lassabb a statikus kötéshez képest.
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 egy funkció meghívásához fordítási idő alatt. | A Dinamikus kötés az a kötés típusa, amely összegyűjti az összes szükséges információt egy funkció meghívásához futás közben. |
A kötés ideje | |
A statikus kötés fordításkor történik. | A dinamikus kötés futási időben történik. |
funkcionalitás | |
A statikus kötés típusinformációkat használ a kötéshez. | A Dinamikus kötés objektumokat használ a feloldáshoz. |
Tényleges tárgy | |
A statikus kötés nem használja a tényleges objektumot a kötéshez. | Dinamikus kötés: használja a tényleges objektumot a kötéshez. |
Szinonimák | |
A statikus kötődést korai kötésnek is nevezik. | A dinamikus kötődést késői kötésnek is nevezzük. |
Végrehajtás | |
A végrehajtási sebesség statikus kötéssel gyors. | A végrehajtási sebesség alacsony a dinamikus kötésnél. |
Példa | |
A statikus kötést a módszer túlterhelésénél használják. | A dinamikus kötést a módszer felülbírálásában használják. |
Van egy kapcsolat a módszerhívás és a módszerdefiníció között. Úgy ismert, mint kötelező. Kétféle kötés létezik: statikus kötés és dinamikus kötés. A statikus kötés és a dinamikus kötés közötti különbség abban áll, hogy a statikus kötésben a kötést a fordítási időben oldják meg, míg a dinamikus kötést a futási időben, amely a végrehajtás tényleges ideje. Mivel a szükséges információkat a futási idő előtt megkapják, a statikus kötés gyors végrehajtásban van, összehasonlítva a dinamikus kötéssel.
Letöltheti a cikk PDF változatát, és offline célokra felhasználhatja, az idézet megjegyzésének megfelelően. Töltse le a PDF verziót itt: A statikus kötés és a dinamikus kötés közötti különbség
1.Java Interjú 04 - Statikus kötés vs dinamikus kötés, Mahika útmutatók, 2017. december 27.