СИТЕ СЕАРЦХ

ООП је шта? Основни принципи објектно-орјентисаног програмирања

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

Основни принципи објектно оријентисанепрограмирања (ООП) су формиране јер су ограничења пронађена у ранијим приступима. Међу њима - неограничен приступ подацима и велики број веза који намећу ограничења за увођење промјена. Њихова свесност и разлози су важни како би се разумело шта је ООП у програмирању и које су његове користи.

Процедурални језици

Ц, Пасцал, ФОРТРАН и слични језици супроцедурално. То јест, сваки од њихових оператера наређује рачунару да нешто уради: добије податке, сабира бројеве, дели на шест, приказује резултат. Апликација процедуралног језика је листа инструкција. Ако је мали, ниједан други организациони принцип (који се често назива парадигма) није потребан. Програматор креира листу инструкција, а рачунар их извршава.

Раздвајање у функције

Када апликације постану веће, листаје тешко. Неколико може да разуме више од неколико стотина инструкција све док се не групишу заједно. Из тог разлога, функција је постала начин да апликације постану разумљивије за своје ствараоце. На неким језицима, исти концепт се може назвати подпрограмом или процедуром.

Апликација је подељена на функције, од којих свака има јасно дефинисану сврху и интерфејс.

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

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

ооп тхис

Проблеми структуираног програмирања

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

Анализа узрока ових неуспјеха показала је недостаткепроцедурална парадигма. Без обзира на то колико се добро имплементира структуриран приступ програмирању, велике апликације постају претјерано сложене.

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

Ако узмемо у обзир ове проблеме у контекступрограм инвентарног књиговодства, онда је један од најважнијих глобалних елемената података скуп агрегата. Различите функције могу им приступити како би уносиле нову вриједност, приказале, мењале и тако даље.

Неограничен приступ

У програму написаном, на примјер, у Ц, постоје двије врсте података. Локални су скривени унутар функције и друге процедуре се не користе.

Када се приступи две или више функцијана истим подацима, онда је ово друго глобално. Ове, на пример, су информације о ставкама које треба узети у обзир. Глобални подаци се могу приступити било којом процедуром.

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

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

На пример, у рачуноводственом програму неко одлучи тај кодобрачунатог субјекта не би требало да се састоји од 5 цифара, већ од 12. Ово ће захтијевати промјену врсте података од кратког до дугог. Сада се морају мењати функције које се односе на кодове ради са новим форматом.

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

шта је у програмирању

Моделирање у стварном свету

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

Атрибути

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

Понашање

Понашање је објекат стварног светапроизводе као одговор на неки ефекат. Ако тражите од власти да подигну плате, одговор је "да" или "не". Ако притиснете кочницу, аутомобил се зауставља. Изговор и заустављање су примери понашања. Понашање је као поступак: позвано је да нешто учини, и то чини. Стога, само подаци и функције не праве ефикасно стварање објеката стварног света.

Решавање проблема

Објект у ООП-у представља колекцијуподатке и функције. Само процедуре које се називају чланске функције у Ц ++ омогућавају вам да добијете своје вриједности. Подаци су скривени и заштићени од промјена. Вредности и функције су енкапсулиране у једној јединици. Инкапсулација и скривање су главни појмови у опису ОО-језика.

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

Апликација се, по правилу, састоји од неколико објеката који међусобно комуницирају, позивајући функције чланова.

Данас најчешће коришћен језик ООП-а(објектно оријентисано програмирање) - Ц ++ (плус-плус). Јава не поседује неке функције, као што су показивачи, шаблони и вишеструко наслеђивање, што га чини мање моћним и свестраним од Ц ++. Ц # још није достигла популарност Ц ++-а.

Треба напоменути да такозваниФункције чланова у Ц ++ називају се методе на неким другим ОО језицима, као што су Смаллталк. Елементи података се називају атрибути. Позивање метода објекта шаље поруку.

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

Аналогија

Можете поднети предмете одељењима компаније. У већини организација запослени не раде једнодневно са кадровима, а следећи на платном списку, а затим недељно на малопродаји. Свако одељење има своје особље са јасно додељеним одговорностима. Постоје и сопствени подаци: плате, подаци о продаји, евиденције запослених итд. Људи у одељењима раде са својим информацијама. Одвајање компаније, на тај начин, олакшава контролу над својим активностима и одржава интегритет података. Рачуноводство је одговорно за платни списак. Ако желите да сазнате укупан износ зарада у јулу у јулу, не морате да се бринете у архиви. Довољно је послати белешку надлежном особљу, сачекајте да ова особа добије приступ подацима и пошаље одговор са потребним информацијама. Ово обезбеђује усклађеност са прописима и одсуство спољашњих сметњи. На исти начин, објекат у ООП-у обезбеђује организацију апликације.

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

објекат у њу

Објекат у ООП-у: дефиниција

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

Које ствари постају предмет у ООП-у? Испод су типичне категорије.

Физички објекат у ООП-у је:

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

Елементи рачунарског окружења корисника:

  • мени;
  • виндовс;
  • графика (линија, правоугаоник, круг);
  • тастатура, миш, штампач, диск јединице.

Људи:

  • запослени;
  • студенти;
  • купци;
  • продавце.

Подаци:

  • рачуноводствена књига;
  • приватна ствар;
  • речник;
  • табела географских ширина и дужине насеља.

Веза између објеката стварног света и ООП-а резултат је комбинације функција и података: они су револуционисали програмирање. Не постоји тако блиска кореспонденција на процедуралним језицима.

објекат у дефиницији ооп

Класа

Објекти у ООП-у су чланови класе. Шта то значи? Програмски језици имају уграђене типове података. Инт тип, то јест, цео број, је предефинисан у Ц ++. Можете декларирати било који број инт променљивих.

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

Класа у ООП-у је опис многих сличних објеката. Принц, Стинг и Мадонна су певачи. Не постоји ниједна особа са тим именом, али људи могу бити такозвани ако имају одговарајуће карактеристике. ООП објект је инстанца класе.

Наслеђивање

У животу, класе су подијељене на подкласе. На пример, животиње су подељене на водоземце, сисаре, птице, инсекте итд.

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

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

објекат у ооп

Поновите

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

У ООП-у, наследство је проширење идејевишеструка употреба. Из постојеће класе, без промјене, можете креирати нову с додатком других функција. Једноставност поновног коришћења постојећег софтвера је важна предност ООП-а. Верује се да ово даје повећање приноса од иницијалне инвестиције.

Креирање нових врста података

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

поситион1 = позиција + порекло,

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

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

Полиморфизам, преоптерећење

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

Коришћење оператора или процедура уу зависности од тога на шта раде, назива се полиморфизам. Када постојећи оператер, као што је + или =, може радити са новим типом података, речено је да је преоптерећен. Преоптерећење у ООП-у је врста полиморфизма. То је њена важна карактеристика.

Књига о ООП-у "Објектно оријентисано програмирање за луталице" омогућиће свима да се детаљније упознају са овом темом.

</ п>
  • Оцена: