Реклама

Ако сте то урадили почетничко програмирањеили сте чак почели да гледате различите језике, вероватно сте наишли на фразу „објектно оријентисано програмирање“ (или „ООП“).

Постоје разне врсте техничких објашњења о томе о чему се ради, али данас ћемо погледати дефинисање објектно оријентисаног програмирања на једноставан начин.

Пре него што започнемо: Процедурални језици

Да бисте разумели шта је објектно оријентисани програмски језик, морате да разумете шта је заменио. Рани програмски језици били су процедурални - такозвани зато што би програмер дефинисао врло специфичан скуп поступака које би компјутер предузео.

Шта је објектно оријентисано програмирање и како започети са учењем

У најранијим данима поступци су писани на бушилицама. Ти кораци су преузели податке, извели низ поступака на тим подацима, а затим исписали нове податке.

Процедурални језици су неко вријеме добро функционирали (а неки се и даље користе). Али када желите да програмирате нешто изван основног низа корака, процедурални језици могу бити тешки за управљање. Тамо долази објектно оријентисано програмирање.

Објект објектно оријентисаног програмирања

Па шта је онда објектно оријентисано програмирање?

Први објективно оријентисани језик (за који је углавном пристала да буде Симула) представио је идеју објеката. Објекти су збирка информација која се третирају као јединствена целина.

Закуцаћемо дубље у то шта то заправо значи у секунди са примером, али прво морамо разговарати часови. Часови су налик предобјектима. Садрже листу атрибута који, када су дефинисани, постају објект.

Шта је објектно оријентисано програмирање и како започети са учењем

Узмимо за пример програмирање игре у шаху. Можда имамо класу која се зове Пиеце. У Пиеце-у имамо листу атрибута:

  • Боја
  • Висина
  • Облик
  • Кретање је дозвољено

Објект једноставно дефинише једну посебну инстанцу ствари која припада тој класи.

Тако да можемо имати објект зван ВхитеКуеен. Тај би објект имао дефиниције за сва четири атрибута (бијели, високи, цилиндрични са кренелима, било који број размака у било којем смјеру). Могло би се и десити методе или функције.

Шта је ово толико боље од процедуралног приступа?

Укратко, објектно оријентисани програмски језици (попут Јава) олакшава организовање података и кода на начин који је свестранији за већи пројекат.

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

Објектно оријентисано програмирање: апстракција

То што желите да употребите нешто не значи да морате знати како то функционише. На пример, машина за еспрессо је сложена. Али не морате знати како то функционише. Само треба да знате да када притиснете "Укључено", добићете еспрессо.

Шта је објектно оријентисано програмирање и како започети са учењем

Исто је и са објектима објектно оријентисаног програмирања. У нашем шаховском примеру можда имамо потез (). Та метода може захтевати пуно података и других метода. Можда ће му требати почетне и крајње варијабле положаја. Могла би се користити друга метода да се утврди да ли је ухваћен комад.

Али то не требате знати Све што треба да знате је да када кажете комаду да се креће, он се помера. То је апстракција.

Објектно оријентисано програмирање: капсулација

Инкапсулација је један од начина да објектно оријентисано програмирање ствара апстракцију. Сваки објекат је збирка података која се третирају као јединствени ентитет. А унутар тих објеката се налазе подаци - и променљиве и методе.

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

Бисхоп предмет може садржавати неколико информација. На примјер, могла би имати варијаблу која се зове „положај“. Та варијабла је неопходна за употребу потеза (мове). И, наравно, има боју.

Чинећи променљиву позицију приватном, а метода мове () јавном, програмер штити променљиву позицију од утицаја било чега другог. А ако је боја приватна променљива, не постоји начин да је други објект промијени, осим ако не постоји метода која допушта промјену. (Што вероватно не бисте имали, јер боја дела треба да остане константна.)

Ове променљиве и методе чувају се унутар Бисхоп објекта. Будући да су у капсули, програмер може да промени структуру или садржај објекта без бриге о јавном интерфејсу.

Објектно оријентисано програмирање: Насљеђивање

Поред класа, објектни програмски језици имају и подкласе. Они садрже све атрибуте из родитељске класе, али могу садржавати и друге атрибуте.

У нашој шаховској игри, комадима залагаонице треба метода која их може претворити у друге комаде ако их доведу до краја плоче. Назваћемо га методом трансформПиеце ().

Не сваки комад треба методу трансформПиеце (). Тако да не бисмо желели да га ставимо у класу Пиеце. Уместо тога, можемо створити подкласу која се зове Залагач. Будући да је подкласа, наслеђује све атрибуте из Пиеце-а. Дакле, инстанца подкласе Заставица укључује дозвољену боју, висину, облик и кретање.

Али такође укључује методу трансформПиеце (). Сада се не морамо бринути да ли ћемо случајно искористити ту функцију на потезу. Ево техничког објашњења:

Стварање поткласа такође штеди много времена. Уместо да стварају нове класе за све, програмери могу да креирају базну класу и затим је проширеју на нове подкласе када то морају. (Ипак, вреди то приметити претерано ослањање на наслеђивање је лоше 10 основних принципа програмирања који сваки програмер мора следитиУвек напишите код који може одржавати свако ко може завршити рад на вашем софтверу. У ту сврху, ево неколико програмских принципа који ће вам помоћи да очистите свој чин. Опширније .)

Објектно оријентисано програмирање: полиморфизам

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

На пример, наша класа Пиеце може имати метод (() који помиче комад један простор у било ком правцу. То делује за краљев комад, али не за ништа друго. Да бисмо решили овај проблем, можемо дефинисати нову методу мове () у подкласи Роок која дефинише кретање као неограничени број размака напред, назад, лево или десно.

Сада, када програмер позива методу мове () и користи комад као аргумент, програм ће тачно знати како се комад треба кретати. Ово штеди много времена преко покушаја да се утврди коју од много различитих метода треба да користите.

Објектно оријентисано програмирање у матици

Ако вам се глава мало врти након ове последње четири дефиниције, не брините превише. Ево главних ствари које морате запамтити:

  • Објектно оријентирано програмирање прикупља информације у јединствене цјелине које се називају објекти.
  • Сваки објект је једна инстанца класе.
  • Апстракција скрива унутрашње функционисање објекта када их није потребно видети.
  • Инкапсулацијом се смештају повезане променљиве и методе у објекте и штити их.
  • Насљеђивање омогућава подкласама да користе атрибуте из родитељских класа.
  • Полиморфизам омогућава објектима и методама да се баве с више различитих ситуација са једним интерфејсом.

Ако се сећате тих тачака, имаћете добар потез о томе шта је објектно оријентисано програмирање. Као што сам већ споменуо, четири основе објектно оријентисаног програмирања могу бити мало тешке за решење. Али када започнете програмирање, постаће јаснији.

Имајте на уму да смо у овом чланку само расправљали о генералностима. Различити објектно оријентисани језици имат ће своје особине и начине да се ствари догоде. Једном ти одаберите прави језик за вас Тражите најбоље језике за програмирање? Почните овде!Без обзира да ли сте потпуно нови у програмским језицима или желите да пређете на нову врсту програмирања, једно од најважнијих питања које треба поставити је: „Који програмски језик је прави за мене?“ Опширније , почећете да учите како то примјењује ООП принципе у пракси.

Данн је садржајна стратегија и маркетиншки саветник који помаже компанијама да стварају потражњу и води. На данналбригхт.цом такође пише блогове о стратегији и маркетингу садржаја.