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

Процедурално оријентисано програмирање: систем моделујемо поступком који се састоји од корака. Размишљамо, по корацима, како се и када нешто ради. Решење се описује АЛГОРИТМОМ и ДИЈАГРАМОМ ТОКА!

Објектно оријентисано програмирање: проблем се разлаже на делове. У проблему се уочавају објекти који нешто раде. Битно је шта они раде, а не како то раде. Унутрашњост објекта је његово тренутно стање, и решење проблема се своди на описивање начина на који се то стање реализује, као и начина на који се прелази из стања у стање. Споља се над објектом могу вршити акције које мењају или испитују његово тренутно стање. Други објекти дејствују са датим објектом само преко тих акција.

Постоје 4 концепта објектно оријентисаног програмирања који важе у свим објектно оријентисаним језицима, а преклапање оператора, као пети концепт специфичан је само за програмски језик C++:

  1. апстракција омогућава да користимо објекат само на основу његових веза са спољним светом и знањем о томе шта објекат ради. Апстракцијом се сматра скуп објеката из система који имају нека заједничка својства, битна са становишта њиховог окружења: дрво, пас, особа, банковни рачун…
  2. Енкапсулација – реализација неког кориснички дефинисаног типа (а то су ОБЈЕКТИ) треба да буде сакривена од остатка система. Потребно је корисницима дефинисаног типа прецизно дефинисати шта се са датим типом може урадити, а начин како се то тачно ради сакрива се од корисника.
  3. Наслеђивање – постоји објекат родитељ и објекат наследник. Наследник наслеђује све особине и дограђује их неким новим или променом постојећих (пример су штампач и штампач са стиловима)
  4. полиморфизам – наслеђени тип се понаша на њему својствен начин, иако се користи као основни тип (делови програма који користе тип штампач не морају се преправљати да би користили штампач са стиловима, они раде добро и са новим типом. Нови штампачи врше испис на себи својствен начин, али их остатак програма види као старе штампаче!)
  5. преклапање оператора (специфично за програмски језик C++) – да би типови које је дефинисао програмер били сасвим равноправни са уграђеним типовима, могуће је дефинисати значења оператора која постоје у језику (пример су аритметичке операције комплексних бројева)

Advertisements

Оставите одговор

Попуните детаље испод или притисните на иконицу да бисте се пријавили:

WordPress.com лого

Коментаришет користећи свој WordPress.com налог. Одјавите се / Промени )

Слика на Твитеру

Коментаришет користећи свој Twitter налог. Одјавите се / Промени )

Фејсбукова фотографија

Коментаришет користећи свој Facebook налог. Одјавите се / Промени )

Google+ photo

Коментаришет користећи свој Google+ налог. Одјавите се / Промени )

Повезивање са %s