Skirtumas tarp statinio ir dinaminio įrišimo

Pagrindinis skirtumas - statinis Įrišimas vs dinaminis įrišimas
 

Programavimo kalbos, tokios kaip „Java“ ir C #, palaiko objektyvų programavimą (OOP). Tai leidžia kurti programinę įrangą naudojant objektus. Programinėje įrangoje ar programoje yra daug objektų. Šie objektai turi atributus ir metodus. Atributai apibūdina charakteristikas. Metodai apibūdina veiksmus, kuriuos gali atlikti objektas. Duomenys perduodami per objektus, naudojant metodus. Būtinos vertės siunčiamos per metodinius skambučius su parametrais. Faktinis metodo įgyvendinimas yra metodo apibrėžime. Tarp metodo skambučio ir metodo apibrėžimo yra ryšys. Jis žinomas kaip privalomas. Yra du įrišimo tipai. Jie yra statinis ir dinaminis rišimas. pagrindinis skirtumas tarp statinio ir dinaminio surišimo yra tai, atliekant statinį rišimą, įrišimas bus išspręstas sudarymo metu, o dinaminis įrišimas bus išspręstas vykdymo metu, kuris yra tikrasis vykdymo laikas. Šiame straipsnyje aptariamas skirtumas tarp šių dviejų įpareigojančių mechanizmų.

TURINYS

1. Apžvalga ir svarbiausias skirtumas
2. Kas yra statinis įrišimas
3. Kas yra dinaminis įrišimas
4. Statinio įrišimo ir dinaminio įrišimo panašumai
5. Šalutinis palyginimas - statinis įrišimas ir dinaminis įrišimas lentelės pavidalu
6. Santrauka

Kas yra statinis įrišimas?

Įrišimas yra ryšys tarp metodo skambučio ir metodo apibrėžimų.

01 paveikslas: Statinis įrišimas ir dinaminis įrišimas

Peržiūrėkite žemiau esančią programą, parašytą „Java“.

vieša A klasė

public void method1 ()

„System.out.println“ („1 metodas“);

public void method2 ()

„System.out.println“ („2 metodas“);

public static void main (stygos [] args)

A obj = naujas A ();

obj.metodas1 ();

obj.metodas2 ();

Pagal aukščiau pateiktą programą sukuriamas A tipo objektas. Tada vadinami 1 ir 2 metodai. Identifikavimas, kuris metodas turėtų pareikalauti vykdymo, yra žinomas kaip įpareigojimas. Teiginys obj.method1 () iškvies metodą1 (), o obj.method2 () paskambins metodą2 (). Ši nuoroda yra privaloma.

Statinio įrišimo metu įrišimą išsprendžia sudarytojas. Jis taip pat žinomas kaip ankstyvas įrišimas. Įrišimas įvyksta dar prieš pradedant vykdyti programą. Statinis rišimas įvyksta perkraunant metodą. Peržiūrėkite žemiau esančią programą, parašytą „Java“.

„public void“ skaičiavimas

vieša negaliojanti suma (int x, int y)

System.out.println („Suma yra“, x + y);

vieša negaliojanti suma (dviguba x, dviguba y)

System.out.println („Suma yra“, x + y);

public static void main (stygos [] args)

Skaičiavimas cal = naujas skaičiavimas ();

kalcio (2,3);

kalcio (5.1, 6.4);

Pagal aukščiau pateiktą programą, praleidžiant du sveikus skaičius, bus naudojamas metodas su dviem sveikaisiais skaičiais. Kai perduodamos dvi dvigubos vertės, bus naudojamas metodas, atitinkantis dvi dvigubas reikšmes. Šis rišimo procesas vyksta kompiliavimo metu. Sudarytojas žino, kad jis turėtų iškviesti sumos metodą su dviem sveikojo skaičiaus cal.sum (2,3) reikšmėmis. Kalcio (5.1,6.4) atveju jis vadinsis sumos metodu su dviem dvigubomis vertėmis. Visa reikalinga informacija yra žinoma prieš vykdymo laiką, todėl ji padidina programos efektyvumą ir vykdymo greitį.

Kas yra dinaminis įrišimas?

Dinaminio įrišimo metu kompiliatorius neišsprendžia įrišimo kompiliavimo metu. Įrišimas vyksta vykdymo metu. Jis taip pat žinomas kaip vėlyvas įrišimas. Dinaminis įrišimas vyksta metodo pakeitimas. Žiūrėkite programą, parašytą „Java“.

viešosios klasės forma ()

public void draw ()

System.out.println („Lygiosios forma“);

visuomenės klasės ratas () praplečia formą

public void draw ()

„System.out.println“ („Nubrėžkite ratą“);

viešosios klasės trikampis () išplečia formą

public void draw ()

„System.out.println“ („Lygiosios trikampis“);

viešosios klasės testas

public static void main (stygos [] args)

Forma s;

s = nauja forma ();

s.draw ();

s = naujas apskritimas ();

s.draw ();

s = naujas trikampis ();

s.draw ();

Pagal aukščiau pateiktą programą, klasės forma turi metodo brėžinį (). „Class Circle“ ir „Class Triangle“ pratęsia „Shape“ klasę. „Class Circle“ ir „Class Triangle“ gali paveldėti klasės formos atributus ir metodus. Todėl „Class Shape“ yra superklase arba tėvų klasė. „Class Circle“ ir „Class Triangle“ yra klasės arba išvestinės klasės. Šios klasės taip pat turi „draw ()“ metodą su savo įgyvendinimais. Todėl super klasės „draw“ () metodas yra atmestas.

Taikant pagrindinį metodą, iškviečiami skirtingi objektai. Yra formos tipo etaloninis kintamasis, kuris yra s. Tada s iškviečia metodą pagal konkrečią klasę. Kompiliavimo metu sudarytojas nurodys tik super klasės piešimo metodą. Pradėjus realų įvykdymą, bus vykdomi skirtingi atkreipimo būdai. Pirmiausia s bus nukreiptas į Shape tipo objektą. Todėl „Shape“ klasėje bus naudojamas piešimo metodas. Tada s bus nukreiptas į apskritimo tipo objektą, ir jis panaudos apskritimo klasės nupiešimo metodą. Galiausiai, s bus nuoroda į trikampio tipo objektą, ir jis pasinaudos piešimo metodu trikampio klasėje. Nors pamatinis kintamasis yra „Shape“ tipo, įrišimas priklauso nuo objekto tipo. Ši sąvoka yra žinoma kaip dinaminis įrišimas. Informacija pateikiama vykdymo metu, todėl vykdymo greitis yra lėtesnis, palyginti su statiniu įrišimu.

Koks yra statinio įrišimo ir dinaminio įrišimo panašumas?

  • Abu jie yra susiję su polimorfizmu, leidžiančiu objektui elgtis įvairiai.

Kuo skiriasi statinis įrišimas ir dinaminis įrišimas?

Statinis įrišimas vs dinaminis įrišimas

Statinis įrišimas yra įrišimo tipas, kuris surenka visą reikiamą informaciją funkcijai iškviesti kompiliavimo metu. Dinaminis įrišimas yra įrišimo tipas, kuris surenka visą reikiamą informaciją funkcijai iškviesti vykdymo metu.
 Įrišimo laikas
Statinis įrišimas vyksta kompiliavimo metu. Dinaminis rišimas vyksta vykdymo metu.
Funkcionalumas
Statinis įrišimas rišimui naudoja informaciją apie tipą. Dinaminis įrišimas naudoja objektus, kad būtų galima susieti.
 Tikrasis objektas
Statinis rišimas nenaudoja faktinio objekto rišimui. Dinaminis įrišimas, naudokite faktinį objektą.
Sinonimai
Statinis rišimas taip pat žinomas kaip ankstyvasis susirišimas. Dinaminis surišimas taip pat žinomas kaip vėlyvasis surišimas.
Vykdymas
Statinis rišimas yra greitas vykdymo greitis. Dinaminis rišimas yra mažas vykdymo greitis.
Pavyzdys
Statinis rišimas naudojamas metodo perkrovai. Dinaminis rišimas naudojamas metodo pakeitimas.

Santrauka - statiška Įrišimas vs dinaminis įrišimas 

Tarp metodo skambučio ir metodo apibrėžimo yra ryšys. Jis žinomas kaip privalomas. Yra dviejų rūšių įrišimai, vadinami statiniu įrišimu ir dinaminiu įrišimu. Skirtumas tarp statinio ir dinaminio įrišimo yra tas, kad statinio įrišimo metu susiejimas išsprendžiamas sudarymo metu, o dinaminis įrišimas yra išsprendžiamas vykdymo metu, kuris yra tikrasis vykdymo laikas. Kadangi reikiama informacija pateikiama prieš vykdymo laiką, statinis rišimas yra greitas, palyginti su dinaminiu rišimu.

Atsisiųskite statinio įrišimo ir dinaminio įrišimo PDF rinkmeną

Galite atsisiųsti šio straipsnio PDF versiją ir naudoti ją neprisijungus, kaip nurodyta citatos pastaboje. Atsisiųskite PDF versiją čia: Statinio įrišimo ir dinaminio įrišimo skirtumas

Nuoroda:

1. „Java“ interviu 04 - Statinis įrišimas ir dinaminis įrišimas, „Mahika“ vadovėliai, 2017 m. Gruodžio 27 d.