Keskeinen ero - staattinen sitova vs. dynaaminen sidonta
Ohjelmointikielet, kuten Java ja C #, tukevat olioohjattua ohjelmointia (OOP). Sen avulla voidaan rakentaa ohjelmistoja esineiden avulla. Ohjelmistojärjestelmässä tai ohjelmassa on monia esineitä. Näillä objekteilla on määritteet ja menetelmät. Attribuutit kuvaavat ominaisuuksia. Menetelmät kuvaavat toimintoja, jotka objekti voi suorittaa. Tiedot välitetään objektien läpi menetelmillä. Vaaditut arvot lähetetään menetelmäkutsujen kautta parametreilla. Menetelmän varsinainen toteutus on menetelmän määrittelyssä. Menetelmän kutsun ja menetelmän määrittelyn välillä on yhteys. Se tunnetaan sitovana. Sidoksia on kahdenlaisia. Ne ovat staattista ja dynaamista. Keskeinen ero staattisen sitoutumisen ja dynaamisen sitoutumisen välillä on se, että staattisessa sitoutumisessa sitoutuminen ratkaistaan kääntöhetkellä, kun taas dynaaminen sitoutuminen ratkaistaan ajon aikana,mikä on todellinen toteutusaika. Tässä artikkelissa käsitellään näiden kahden sitoutumismekanismin välistä eroa.
SISÄLLYS
1. Yleiskatsaus ja keskeinen ero
2. Mikä on staattinen sidonta
3. Mikä on dynaaminen sidonta
4. Staattisen ja dynaamisen sidonnan yhtäläisyydet
5. Vertailu rinnakkain - Staattinen sidonta vs dynaaminen sidonta taulukkomuodossa
6. Yhteenveto
Mikä on staattinen sidonta?
Sidonta on linkki menetelmän kutsun ja menetelmän määrittelyjen välillä.
Kuva 01: Staattinen ja dynaaminen sidonta
Katso alla olevaa Java-ohjelmaa.
julkinen luokka A {
public void -menetelmä1 () {
System.out.println ("Menetelmä1");
}
public void -menetelmä2 () {
System.out.println ("Menetelmä2");
}
public staattinen void main (String argumentoi) {
A obj = uusi A ();
obj.metodi1 ();
obj. menetelmä2 ();
}
}
Yllä olevan ohjelman mukaan luodaan tyypin A objekti. Sitten kutsutaan menetelmä1 ja menetelmä2. Sen määrittäminen, minkä menetelmän tulisi kutsua suoritusta, tunnetaan sitovana. Lauseke obj.method1 () kutsuu method1 () ja obj.method2 () kutsuu method2 (). Tämä linkki on sitova.
Staattisessa sidonnassa kääntäjä ratkaisee sidonnan kääntöhetkellä. Se tunnetaan myös varhaisena sitoutumisena. Sitominen tapahtuu ennen ohjelman todellista suorittamista. Staattinen sitoutuminen tapahtuu menetelmän ylikuormituksessa. Katso alla olevaa Java-ohjelmaa.
public void Laskelma {
public void summa (int x, int y) {
System.out.println ("Summa on", x + y);
}
public void summa (kaksinkertainen x, kaksinkertainen y) {
System.out.println ("Summa on", x + y);
}
public staattinen void main (String argumentoi) {
Laskenta cal = uusi Laskelma ();
laskettu summa (2,3);
laskennallinen summa (5,1, 6,4);
}
}
Yllä olevan ohjelman mukaan, kun kaksi kokonaislukua välitetään, käytetään menetelmää, jossa on kaksi kokonaislukua. Kun välitetään kaksi kaksinkertaista arvoa, käytetään kahta kaksoisarvoa vastaavaa menetelmää. Tämä sitoutumisprosessi tapahtuu laatimishetkellä. Kääntäjä tietää, että sen pitäisi kutsua summa-menetelmä, jolla on kaksi kokonaislukua arvolle cal.sum (2,3). Calille (5.1,6.4) se kutsuu summatapaa kahdella kaksoisarvolla. Kaikki vaaditut tiedot ovat tiedossa ennen ajonaikaa, joten ne lisäävät ohjelman tehokkuutta ja suorituksen nopeutta.
Mikä on dynaaminen sidonta?
Dynaamisessa sidonnassa kääntäjä ei ratkaise sidontaa kääntöhetkellä. Sitoutuminen tapahtuu ajon aikana. Se tunnetaan myös myöhäisenä sitoutumisena. Dynaaminen sidonta tapahtuu menetelmän ohituksessa. Katso Java-ohjelmassa kirjoitettu ohjelma.
julkisen luokan muoto () {
julkinen mitätön arvonta () {
System.out.println ("Piirrä muoto");
}
}
julkinen luokka Circle () laajentaa muotoa {
julkinen mitätön arvonta () {
System.out.println ("Piirrä ympyrä");
}
}
julkisen luokan kolmio () laajentaa muotoa {
julkinen mitätön arvonta () {
System.out.println ("Piirrä kolmio");
}
}
julkisen luokan testi {
public staattinen void main (String argumentoi) {
Muodot;
s = uusi muoto ();
s.piirrä ();
s = uusi ympyrä ();
s.piirrä ();
s = uusi kolmio ();
s.piirrä ();
}
}
Yllä olevan ohjelman mukaan luokassa Shape on menetelmäveto (). Luokkapiiri ja luokan Kolmio ulottavat Muoto-luokan. Luokkapiiri ja luokan kolmio voivat periä luokan Shape attribuutit ja menetelmät. Siksi luokan muoto on super- tai emoluokka. Luokkapiiri ja luokan kolmio ovat alaluokkia tai johdettuja luokkia. Näillä luokilla on myös draw () -menetelmä omilla toteutuksillaan. Siksi superluokan draw () -menetelmä ohitetaan.
Päämenetelmässä käytetään erilaisia objekteja. On muodon tyyppinen referenssimuuttuja, joka on s. Sitten s käyttää menetelmää tietyn luokan mukaan. Kääntäjänä kääntäjä viittaa vain superluokan piirtomenetelmään. Kun varsinainen toteutus alkaa, se johtaa erilaisten piirtomenetelmien suorittamiseen. Ensinnäkin s osoittaa Shape-tyypin kohteeseen. Siksi se käyttää piirustusmenetelmää Shape-luokassa. Sitten s osoittaa ympyrätyyppistä objektia ja se vetää ympyräluokan piirtomenetelmän. Lopuksi s viittaa tyypin Triangle objektiin ja se vetää piirtomenetelmän Triangle-luokassa. Vaikka referenssimuuttuja on tyyppiä Shape, sidonta sattuu riippumaan objektityypistä. Tämä käsite tunnetaan nimellä dynaaminen sidonta. Tiedot toimitetaan ajoaikana,joten suorituksen nopeus on hitaampi verrattuna staattiseen sitomiseen.
Mikä on staattisen ja dynaamisen sidonnan yhtäläisyys?
Nämä molemmat liittyvät polymorfismiin, joka sallii kohteen käyttäytyä monin tavoin
Mikä on ero staattisen ja dynaamisen sidonnan välillä?
Erilainen artikkeli keskellä taulukkoa
Staattinen sidonta vs dynaaminen sidonta |
|
Staattinen sidonta on sidontatyyppi, joka kerää kaikki tarvittavat tiedot toiminnon kutsumiseksi kääntöajan aikana. | Dynaaminen sidonta on sidontatyyppi, joka kerää kaikki tarvittavat tiedot toiminnon kutsumiseen ajon aikana. |
Sidonnan aika | |
Staattinen sidonta tapahtuu kääntöhetkellä. | Dynaaminen sitoutuminen tapahtuu ajon aikana. |
Toiminnallisuus | |
Staattinen sidonta käyttää tyyppitietoja sitomiseen. | Dynaaminen sidonta käyttää objekteja sitomiseksi. |
Todellinen kohde | |
Staattinen sidonta ei käytä sidonnassa todellista objektia. | Dynaaminen sidonta, käytä sidonnassa todellista objektia. |
Synonyymit | |
Staattinen sitoutuminen tunnetaan myös nimellä varhainen sitoutuminen. | Dynaaminen sitoutuminen tunnetaan myös myöhäisenä sitoutumisena. |
Suoritus | |
Suoritusnopeus on nopea staattisessa sidonnassa. | Suoritusnopeus on pieni dynaamisessa sidonnassa. |
Esimerkki | |
Staattista sidontaa käytetään menetelmän ylikuormituksessa. | Dynaamista sitoutumista käytetään menetelmän ohittamiseen. |
Yhteenveto - Staattinen sidonta vs Dynaaminen sidonta
Menetelmän kutsun ja menetelmän määrittelyn välillä on yhteys. Se tunnetaan sitovana. On olemassa kahden tyyppisiä sidoksia, joita kutsutaan staattiseksi ja dynaamiseksi. Staattisen sitoutumisen ja dynaamisen sitoutumisen välinen ero on se, että staattisessa sitoutumisessa sitoutuminen ratkaistaan kääntöaikana, kun taas dynaaminen sitoutuminen ratkaistaan ajoaikana, joka on todellinen suoritusaika. Koska vaaditut tiedot toimitetaan ennen ajoaikaa, staattinen sitoutuminen on suorituksessa nopeaa verrattuna dynaamiseen sitoutumiseen.
Lataa PDF-tiedosto staattisesta sidonnasta vs dynaamisesta sidonnasta
Voit ladata tämän artikkelin PDF-version ja käyttää sitä offline-tarkoituksiin lainausviestin mukaan. Lataa PDF-versio täältä: Staattisen ja dynaamisen sidonnan ero