Ohjelmointikielet, kuten Java ja C #, tukevat objektiohjattua ohjelmointia (OOP). Se mahdollistaa ohjelmistojen rakentamisen objektien avulla. Ohjelmistojärjestelmässä tai ohjelmassa on monia esineitä. Näillä objekteilla on määritteet ja menetelmät. Ominaisuudet kuvaavat ominaisuuksia. Menetelmät kuvaavat toimia, jotka objekti voi suorittaa. Tiedot välitetään objektien läpi menetelmiä käyttämällä. Vaaditut arvot lähetetään parametrien mukaisten menetelmäkutsujen kautta. Menetelmän todellinen toteutus on menetelmän määritelmässä. Menetelmäkutsu ja menetelmämäärittely ovat välillä. Se tunnetaan sitovana. Sidoksia on kahta tyyppiä. Ne ovat staattista ja dynaamista sitoutumista. avainero staattisen sitoutumisen ja dynaamisen sitoutumisen välillä on se, staattisessa sitomisessa sitominen ratkaistaan kokoamisajankohtana, kun taas dynaaminen sidonta ratkaistaan ajoaikana, joka on todellinen suoritusaika. Tässä artikkelissa tarkastellaan eroa näiden kahden sitovan mekanismin välillä.
1. Yleiskatsaus ja keskeiset erot
2. Mikä on staattinen sitominen
3. Mikä on dynaaminen sidonta
4. Staattisen ja dynaamisen sitoutumisen väliset yhtäläisyydet
5. Vertailu rinnakkain - staattinen sidonta vs. dynaaminen sitoutuminen taulukkomuodossa
6. Yhteenveto
Sidonta on linkki menetelmäsoiton ja menetelmämääritysten välillä.
Kuva 01: Staattinen sidonta ja dynaaminen sidonta
Katso alla oleva Java-kirjoitettu ohjelma.
julkinen luokka A
public void method1 ()
System.out.println ( ”telmällä1”);
public void method2 ()
System.out.println ( ”menetelmä2”);
julkinen staattinen void main (merkkijono [] args)
A obj = uusi A ();
obj.method1 ();
obj.method2 ();
Edellä olevan ohjelman mukaan luodaan tyypin A objekti. Sitten kutsutaan menetelmä1 ja menetelmä2. Sen tunnistaminen, joka menetelmä vaatii suorituksen, tunnetaan sitovana. Lause obj.method1 () kutsuu menetelmää1 () ja obj.method2 () kutsuu menetelmää2 (). Tämä linkki on sitova.
Staattisessa sitomisessa kääntäjä ratkaisee sitoutumisen käännöshetkellä. Se tunnetaan myös nimellä varhainen sidonta. Sidonta tapahtuu ennen kuin ohjelma todella suoritetaan. Staattinen sitoutuminen tapahtuu menetelmän ylikuormituksessa. Katso alla oleva Java-kirjoitettu ohjelma.
julkisen mitätön laskenta
julkinen mitätön summa (int x, int y)
System.out.println (“Sum on”, x + y);
julkinen tyhjä summa (kaksinkertainen x, kaksinkertainen y)
System.out.println (“Sum on”, x + y);
julkinen staattinen void main (merkkijono [] args)
Laskenta cal = uusi laskelma ();
cal.sum (2,3);
kalsium (5,1, 6,4);
Yllä olevan ohjelman mukaan, kun ohitetaan kaksi kokonaislukua, otetaan käyttöön menetelmä kahdella kokonaisluvulla. Kun ohitetaan kaksi kaksoisarvoa, otetaan käyttöön kahta kaksoisarvoa vastaava menetelmä. Tämä sitomisprosessi tapahtuu kokoamishetkellä. Kääntäjä tietää, että sen tulisi kutsua summamenetelmää kahdella kokonaislukuarvolla cal.sum (2,3). Calille (5.1,6.4) se kutsuu summamenetelmää kahdella kaksoisarvolla. Kaikki vaaditut tiedot tiedetään ennen suoritusta, joten se lisää ohjelman tehokkuutta ja suoritusnopeutta.
Dynaamisessa sidoksessa kääntäjä ei ratkaise sidosta käännöshetkellä. Sitoutuminen tapahtuu juoksuaikana. Se tunnetaan myös nimellä myöhäinen sidonta. Dynaaminen sitoutuminen tapahtuu menetelmän ohittamisessa. Katso Java-kirjoitettu ohjelma.
julkisen luokan muoto ()
public void draw ()
System.out.println (“Piirrä muoto”);
julkisen luokan Circle () laajentaa muotoa
public void draw ()
System.out.println (“Piirrä ympyrä”);
julkisen luokan kolmio () laajentaa muotoa
public void draw ()
System.out.println (“Piirrä kolmio”);
julkisen luokan testi
julkinen staattinen void main (merkkijono [] args)
Muodot;
s = uusi muoto ();
s.draw ();
s = uusi ympyrä ();
s.draw ();
s = uusi kolmio ();
s.draw ();
Yllä olevan ohjelman mukaan luokan muodolla on menetelmäpiirtäjä (). Luokan ympyrä ja luokan kolmio laajentavat muotoa. Luokan ympyrä ja luokan kolmio voivat periä luokan muodon ominaisuudet ja menetelmät. Siksi luokan muoto on superluokka tai yläluokka. Luokan ympyrä ja luokan kolmio ovat alaluokkia tai johdettuja luokkia. Näillä luokilla on myös piirtomenetelmä () omilla toteutuksillaan. Siksi superluokan Draw () -menetelmä ohitetaan.
Päämenetelmässä eri kohteita kutsutaan. On muotomuotoinen vertailumuuttuja, joka on s. Sitten s kutsuu menetelmän tietyn luokan mukaan. Kääntämisaikana kääntäjä viittaa vain superluokan piirtomenetelmään. Kun varsinainen suorittaminen alkaa, se johtaa erilaisten piirtomenetelmien suorittamiseen. Ensinnäkin s osoittaa tyypin muoto Shape. Siksi se vetoaa piirtomenetelmään Shape-luokassa. Sitten s osoittaa Circle-tyypin objektia, ja se vetoaa Circle-luokan piirtomenetelmään. Lopuksi s viittaa kolmiotyypin objektiin, ja se vetoaa piirtomenetelmään kolmioluokassa. Vaikka referenssimuuttuja on tyypin Shape, sitominen tapahtuu riippuen objektityypistä. Tämä käsite tunnetaan nimellä dynaaminen sidonta. Tiedot toimitetaan ajoaikana, joten suoritusnopeus on hitaampi verrattuna staattiseen sitomiseen.
Staattinen sitominen vs dynaaminen sitominen | |
Staattinen sitominen on sidostyyppi, joka kerää kaikki tarvittavat tiedot toiminnon kutsumiseksi kokoamisaikana. | Dynaaminen sidonta on sidostyyppi, joka kerää kaikki tarvittavat tiedot toiminnon kutsumiseksi ajon aikana. |
Sitoutumisaika | |
Staattinen sidonta tapahtuu käännöshetkellä. | Dynaaminen sidonta tapahtuu ajon aikana. |
toiminnallisuus | |
Staattinen sidonta käyttää tyyppitietoja sitomiseen. | Dynaaminen sidonta käyttää objekteja ratkaistakseen sitomiseksi. |
Todellinen kohde | |
Staattinen sidonta ei käytä todellista objektia sidontaan. | Dynaaminen sidonta, käytä todellista objektia sidontaan. |
synonyymit | |
Staattinen sitoutuminen tunnetaan myös varhaisena sitoutumisena. | Dynaaminen sitoutuminen tunnetaan myös myöhäisenä sitoutumisena. |
suoritus | |
Suoritusnopeus on nopea staattisessa sidonnassa. | Suoritusnopeus on alhainen dynaamisessa sidonnassa. |
esimerkki | |
Staattista sidosta käytetään menetelmän ylikuormituksessa. | Dynaamista sitomista käytetään menetelmän ohittamisessa. |
Menetelmäkutsu ja menetelmämäärittely ovat välillä. Se tunnetaan sitovana. Sidoksia on kahta tyyppiä, joita kutsutaan staattiseksi ja dynaamiseksi sitomiseksi. Ero staattisen sitoutumisen ja dynaamisen sitomisen välillä on se, että staattisessa sitomisessa sitoutuminen ratkaistaan kokoamisajankohtana, kun taas dynaaminen sitominen ratkaistaan ajoaikana, joka on todellinen suoritusaika. Koska vaadittavat tiedot toimitetaan ennen ajoaikaa, staattinen sidonta on nopea suorittaa verrattuna dynaamiseen sitomiseen.
Voit ladata tämän artikkelin PDF-version ja käyttää sitä offline-tarkoituksiin lainauksen yhteydessä. Lataa PDF-versio täältä: Ero staattisen ja dynaamisen sidonnan välillä
1.Java-haastattelu 04 - Staattinen sidonta vs. dynaaminen sidonta, Mahika-oppaat, 27. joulukuuta 2017. Saatavilla täältä