Увод у статичко везивање и динамичко везивање

То су две врсте везивања. Везивање се односи на повезаност позива методе са телом методе. У статичком везивању, све додељивање и декларација се дешавају у тренутку компилације. Имају вишеструке предности и недостатке једни против других. У перформансама је статичко везивање боље од динамичког везивања метода и променљивих. Статичко везивање је такође познато и као рано везивање. Као што знамо, методе Повезивање попут статичког, приватног и коначног дешава се током времена компилације док се у компајлеру динамичког везивања не одлучује која метода ће се позвати.
Испод дат пример је бољи пример за разумевање

Пример # 1

public class StaticBindingExample (
public static void main(String args()) (
Vehicle veh = new MotorBike();
veh.start();
)
)
class Vehicle (
static void start() (
System.out.println("vehicle will start now..");
)
)
class MotorBike extends Vehicle (
static void start() (
System.out.println("Bike will start now..");
)
)

У горе датом примеру, можемо видети како је статичко везивање намењено да спречи преоптерећење класе.

Испод дат пример ће приказати како функционише динамичко везивање, овде метода надређене класе надјачава родитељску класу

Пример бр. 2

public class StaticBindingExample (
public static void main(String args()) (
Vehicle veh = new MotorBike();
veh.start();
)
)
class Vehicle (
void start() (
System.out.println("vehicle will start now..");
)
)
class MotorBike extends Vehicle (
void start() (
System.out.println("Bike will start now..");
)
)

У овом примеру, статичка не постоји у методи старта под методом родитеља и надређених, па ће метода са истим називом надвладати методу надређене класе. Дешава се због тога.

У горе датом слици дат је излаз програма.

Зашто статичко везивање и динамичко везивање?

  1. Неопходно је да се програмирање обрађује у различитим ситуацијама коришћењем статичког и динамичког везивања.
  2. Везање времена компилације познато је под називом Рано везивање, тј. То значи када је потребно декларирати ствари у тренутку компилације (на самом почетку) извршења програма. Код динамичког увезивања, везивање се одвија у време извођења које је познато и као касно везање.
  3. Метода и променљиве, дефинисане као статичко, крајње и приватно, односи се на статичко везивање, док су виртуелне методе које се Везивање одвија у току рада познате као динамичко везање.
  4. Метода Оверлоадинг / Оператор Оверлоадинг користи статичко везивање, тако да је један од најбољих примјера тога док Оверридинг користи Динамиц, тако да је познат као најбољи примјер динамичког везања.
  5. При томе, стварни објект се никада не користи док се стварни објект користи у динамичком повезивању.

Примери

У ниже наведеном примеру можемо видети како се дешава статичко везивање

Пример # 1

// Имплементација родитељске класе

class Colony(
//Static method to start the electricity of the Colony
public static void start electricity()(
//printing the message here
System.out.println("Colony Electricity is On.");
)
)
//Child class implementation
class Building extends Colony(
//Static method to start the electricity of Building
public static void startElectricity()(
//printing the message here
System.out.println("Building Electricity is On.");
)
)
public class StaticBindingExample (
public static void main(String args()) (
//Creating object of the parent class type
Colony col = new Colony();
col.startElectricity();
//Creating object of the child class type
Colony col2 = new Building();
col2.startElectricity();
)
)

У горе наведеном програму, цол је референтна варијабла врсте класе Цолони која упућује на објект класе Цолони. цол2 је такође референтна променљива типа класе типа Цолони, али указује на објект класе Буилдинг. Кад се компилација одвија, док обавезујући преводилац никада не провјерава врсту објекта, он само провјерава врсту референтне варијабле.

У горњем програму, као што је цол .стартЕлецтрицити (), преводилац проверава да ли у класи класе Цолони постоји или не, јер је цол класа Цолони типа. Слично је и за позив методе цол2.стартЕлецтрицити (), проверава да ли је метода старт електрике () присутна у класи колоније или не, јер је цол2 такође тип класе Цолони. Не провјерава на који објекат цол, цол2 је усмјерен. ова врста везивања позната је као статичко везивање.

Излаз:

Горе наведени излаз програма показује како се користе статички чланови за спречавање прегласавања.

Пример бр. 2

У доњем примеру ћемо видети како се појављује динамичко везивање током времена извођења

// Имплементација родитељске класе

class Colony(
//method to start the electricity of the Colony
void startElectricity()(
//printing the message here
System.out.println("Colony Electricity is On.");
)
)
//Child class implementation
class Building extends Colony(
//method to start the electricity of Building
void startElectricity()(
//printing the message here
System.out.println("Building Electricity is On.");
)
)
public class StaticBindingExample (
public static void main(String args()) (
//Creating object of the parent class type
Colony col = new Colony();
col.startElectricity();
//Creating object of the child class type
Colony col2 = new Building();
col2.startElectricity();
)
)

У горе наведеном програму, све је исто као у програму са статичким примером, али у овом примеру је уклоњен члан методе „статички“. Током тога ће се позвати метода главног објекта на који указује цол.стартЕлецтрицити (). Док је за позив цол2.стартЕлецтрицити (), позват ће се метода главног објекта на који цол2 упућује. Ова врста везивања позната је као динамичко везивање.

Излаз:

Предност

  1. Извођење статичког увезивања је ефикасније и брже од динамичког. Овај преводилац везања зна да се ове врсте метода не могу надјачати.
  2. У статичком увезивању користи се тип, док динамичко увезивање користи објекте за везивање.
  3. Једна од главних предности динамичког увезивања је флексибилност, због једне флексибилности једна функција може руковати различитим врстама објеката током извођења.
  4. У статичком увезивању све информације потребне прије времена компилације док у динамичком увезивању не преостају доступне информације прије времена извршавања.
  5. Статично везивање може се одвијати помоћу нормалних функција, док се динамичко везивање може постићи помоћу виртуелних функција.

Закључак

Ово су неки од важних концепата објектно оријентисаног програмирања. Везивање се односи на извршење кода. То се догађа у време компилације док се динамичко везивање дешава у време извођења. Дефиниција, декларација и опсег декларације, то су три важна стуба статичког везивања, док је у динамицком увезивању назив везивања и век трајања обавезујућих ствари.

Препоручени чланци

Ово је водич за статичко везивање и динамичко везивање. Овде смо расправљали о уводу, употреби и предностима. Можете и да прођете кроз друге наше предложене чланке да бисте сазнали више -

  1. Врсте веб хостинга
  2. Преоптерећење и прегласавање на Јави
  3. АнгуларЈС Директиве
  4. Полиморфизам у Јави
  5. Статичка метода ЈаваСцрипт | Воркинг | Примери

Категорија: