Програмски језици као што су Јава и Ц # подржавају објектно оријентисано програмирање (ООП). Омогућује изградњу софтвера помоћу објеката. Постоји много објеката у софтверском систему или програму. Ови објекти имају атрибуте и методе. Атрибути описују карактеристике. Методе описују радње које објект може извести. Подаци се преносе кроз објекте методама. Потребне вриједности шаљу се путем позива метода са параметрима. Стварна имплементација методе је у дефиницији методе. Постоји веза између позива методе и дефиниције методе. Познато је као везивање. Постоје две врсте везивања. Они су статичко везивање и динамичко везивање. Тхе кључна разлика између статичког везивања и динамичког везивања је то, код статичког везивања, везивање се решава у време превођења, док се динамичко везивање решава у време извођења, које је стварно време извршења. Овај чланак говори о разлици између ова два механизма везивања.
1. Преглед и кључне разлике
2. Шта је статичко везивање
3. Шта је динамичко везивање
4. Сличности између статичког и динамичког везивања
5. Упоредна упоредба - статичко везивање вс динамичко везивање у табеларном облику
6. Резиме
Везивање је веза између позива методе и дефиниција метода.
Слика 01: Статично везивање и динамичко везивање
Погледајте доњи програм написан на Јави.
јавна класа А
публиц воид метход1 ()
Систем.оут.принтлн ("Метода 1");
публиц воид метход2 ()
Систем.оут.принтлн ("Метода 2");
јавни статички воид маин (Стринг [] аргс)
А обј = нови А ();
обј.метход1 ();
обј.метход2 ();
Према горе наведеном програму, креира се објект типа А. Тада се позивају метход1 и метход2. Идентификација која метода треба да захтева извршење позната је као обавезујућа. Изјава обј.метход1 () ће позвати метход1 (), а обј.метход2 () ће позвати метход2 (). Ова веза је обавезујућа.
У статичком везивању, везивање се решава у време компилације од стране преводиоца. Такође је позната и као рано везивање. Везивање се дешава пре него што се програм заиста покрене. У преоптерећењу метода долази до статичког везивања. Погледајте доњи програм написан на Јави.
јавна неваљана калкулација
јавна неважећа сума (инт к, инт и)
Систем.оут.принтлн („Збир је“, к + и);
јавна неважећа сума (дупли к, двоструки и)
Систем.оут.принтлн („Збир је“, к + и);
јавни статички воид маин (Стринг [] аргс)
Калкулација кал = нова Калкулација ();
кал.сум (2,3);
кал.сум (5.1, 6.4);
Према горе наведеном програму, приликом преношења два цела броја, позиваће се метода са два цела броја. При доношењу две двоструке вредности позиваће се метода која одговара двема двоструким вредностима. Овај поступак везивања се дешава у време састављања. Компајлер зна да би требало позвати методу са две целобројне вредности за цал.сум (2,3). За цал (5.1,6.4) позваће метод суме са две двоструке вредности. Све потребне информације су познате пре извршења, тако да повећавају ефикасност програма и брзину извршења.
У Динамиц Биндинг-у, компајлер не решава везивање у време превођења. Везање се одвија у време извођења. Такође је позната и као касно везивање. Динамичко везивање се дешава код прегласавања метода. Погледајте програм написан на Јави.
јавна класа Схапе ()
јавно неважеће извлачење ()
Систем.оут.принтлн („Нацртај облик“);
Цирцле у јавној класи () продужава облик
јавно неважеће извлачење ()
Систем.оут.принтлн („Нацртај круг“);
Трокут јавне класе () продужава облик
јавно неважеће извлачење ()
Систем.оут.принтлн („Нацртај троугао“);
тест јавне класе
јавни статички воид маин (Стринг [] аргс)
Схапе с;
с = нови облик ();
с.драв ();
с = нови круг ();
с.драв ();
с = нови троугао ();
с.драв ();
Према горе наведеном програму, класа Схапе има методу драв (). Класа Круг и класа Трокут проширује класу облика. Круг класе и трокут класе могу наслиједити атрибуте и методе класе Облик. Стога је класа Схапе супер класа или родитељска класа. Круг класе и трокут класе су подкласе или изведене класе. Ове класе такође имају методу драв () са сопственим имплементацијама. Стога је метода драв () у супер класици надјачана.
У главној методи се позивају различити објекти. Постоји референтна варијабла типа Схапе, која је с. Затим позива с методом према одређеној класи. У време компилације, преводилац ће се позивати само на методу цртања супер класе. Када започне стварно извршавање, то ће довести до извршења различитих метода извлачења. Прво, с ће указати на објекат типа Схапе. Због тога ће се позвати метода извлачења у класи Схапе. Тада ће с показивати објект типа Цирцле и позваће методу цртања класе Цирцле. Коначно, с ће се позивати на објект типа Триангле и позваће методу цртања у класи Триангле. Иако је референтна варијабла типа Схапе, везивање зависи од типа објекта. Овај концепт је познат као динамичко везивање. Информације се пружају у току извођења, тако да је брзина извођења спорија у односу на статичко везивање.
Статично везивање вс динамичко везивање | |
Статичко везивање је врста везивања која прикупља све потребне информације за позивање функције током компајлирања. | Динамиц Биндинг је врста везивања која прикупља све потребне информације за позивање функције током времена извођења. |
Време везивања | |
Статичко везивање се дешава у време превођења. | Динамичко везивање се дешава у време извођења. |
Функционалност | |
Статично везивање користи информације о типовима за везивање. | Динамичко везивање користи објекте да би се решило за везање. |
Стварни објект | |
Статичко везивање не користи стварни предмет за везивање. | Динамичко везивање, користите стварни објект за везивање. |
Синоними | |
Статичко везивање је такође познато као рано везивање. | Динамичко везивање је такође познато као касно везивање. |
Извршење | |
Брзина извођења је брза у статичком везивању. | Брзина извођења је мала у динамичком везивању. |
Пример | |
У преоптерећењу метода се користи статичко везивање. | Динамичко везивање се користи у превладавању метода. |
Постоји веза између позива методе и дефиниције методе. Познато је као везивање. Постоје две врсте везивања које се називају статичко везивање и динамичко везивање. Разлика између статичког везивања и динамичког везивања је у томе што се код статичког везивања везање решава у време компилације док се динамичко везивање решава у време извођења, које је стварно време извршења. Како су потребне информације дате пре времена извођења, статичко везивање је брзо у извођењу у поређењу са динамичким везивањем.
Можете преузети ПДФ верзију овог чланка и користити је за оффлине употребу према напомени. Молимо преузмите ПДФ верзију овде: Разлика између статичког и динамичког увезивања
1.Јава Интервју 04 - Статично везивање вс динамичко везивање, Махика Туториали, 27. децембар 2017. Доступно овде