object oriented programming c
Увод у објектно оријентисано програмирање на језику Ц ++.
Овим упутством започињемо серију упутстава за учење о Ц ++-у као објектно оријентисаном програмском језику.
Као што знамо, пре објектно оријентисаног програмирања (ООП) програми су се писали на процедуралним језицима. Процедурални језици наглашавају функције. Већи проблеми се рашчлањују на мање потпроблеме и записују као функције.
=> Погледајте овде како бисте истражили целу листу водича за Ц ++.
Процесни језици нису обраћали пажњу на податке. Као резултат тога, била је велика могућност да се проблем не реши на ефикасан начин. Такође, како су подаци били готово занемарени, сигурност података је била лако угрожена.
Све ове недостатке процедуралног програмирања превладали су објектно оријентисано програмирање.
У овом упутству ћемо размотрити основе објектно оријентисаног програмирања и укратко све карактеристике ООП-а.
Шта ћете научити:
- Објектно оријентисано програмирање на језику Ц ++
- Зашто је Ц ++ делимични ООП?
- ООП карактеристике
- Предности ООП-а
- Закључак
- Препоручено читање
Објектно оријентисано програмирање на језику Ц ++
Објектно оријентисано програмирање врти се око података. Главна програмска јединица ООП-а је објекат. Објект је приказ ентитета у стварном времену и састоји се од података и метода или функција које делују на податке. На тај начин су подаци и функције уско повезани и осигурана је сигурност података.
У ООП-у је све представљено као објекат и када се програми извршавају, објекти међусобно комуницирају прослеђивањем порука. Објекат не мора знати детаље имплементације другог објекта за комуникацију.
Осим објеката, ООП подржава и разне функције које су наведене у наставку:
- Предавања
- Капсулација
- Одвајање
- Наслеђивање
- Полиморфизам
Користећи ООП, пишемо програме користећи класе и објекте користећи горње функције. За програмски језик се каже да је прави објектно оријентисани програмски језик ако све што представља користи објекат. Смаллталк је један језик који је чисти објектно оријентисани програмски језик.
С друге стране, за програмске језике попут Ц ++ и Јава каже се да су делимично објектно оријентисани програмски језици.
Зашто је Ц ++ делимични ООП?
Језик Ц ++ дизајниран је са главном намером да се објектно оријентисане карактеристике користе језику Ц.
Иако језик Ц ++ подржава особине ООП-а попут класа, објеката, наслеђивања, инкапсулације, апстракције и полиморфизма, мало је разлога због којих је Ц ++ класификован као делимични објектно оријентисани програмски језик.
шта је .јнлп датотека
У наставку представљамо неколико ових разлога:
# 1) Креирање класе / објеката није обавезно
У Ц ++-у је главна функција обавезна и увек је изван класе. Дакле, у програму можемо имати само једну главну функцију и можемо без класа и објеката.
Ово је прво кршење чистог језика ООП где је све представљено као објекат.
# 2) Употреба глобалних променљивих
Ц ++ има концепт глобалних променљивих које су декларисане ван програма и којима може да приступи било који други ентитет програма. Ово крши инкапсулацију. Иако Ц ++ подржава енкапсулацију у односу на класе и објекте, не брине о томе у случају глобалних променљивих.
# 3) Присуство функције пријатеља
Ц ++ подржава класу пријатеља или функцију која се може користити за приступ приватним и заштићеним члановима других класа тако што ће их учинити пријатељима. Ово је још једна карактеристика Ц ++ која крши ООП парадигму.
Да закључимо, иако Ц ++ подржава све горе поменуте ООП функције, он такође нуди функције које могу да делују као решење за ове функције, тако да можемо и без њих. Ово чини Ц ++ делимичним објектно оријентисаним програмским језиком.
ООП карактеристике
Овде ћемо представити разне ООП функције које се користе за програмирање.
Часови и предмети
Објект је основна јединица у објектно оријентисаном програмирању. Објекат садржи податке и методе или функције које делују на те податке. Предмети заузимају простор у меморији.
С друге стране, класа је нацрт предмета. Супротно томе, објекат се може дефинисати као инстанца класе. Класа садржи скелет предмета и не заузима простор у меморији.
Узмимо Пример предмета аутомобила. Објекат аутомобила под називом „Марути“ може имати податке као што су боја; маке, модел, ограничење брзине итд. и функције попут убрзања. Дефинисали смо други објекат „форд“. Ово може имати сличне податке и функције попут претходног објекта плус још неке додатке.
Слично томе, можемо имати бројне објекте различитих имена који имају сличне податке и функције и неке мање варијације.
Стога, уместо да дефинишемо ове сличне податке и функције у овим различитим објектима, ми дефинишемо нацрт ових објеката који је класа која се зове Цар. Сваки од горњих објеката биће примерци аутомобила ове класе.
Одвајање
Апстракција је поступак скривања небитних информација од корисника. На пример , када возимо аутомобил, прво палимо мотор уметањем кључа. Нисмо упознати са процесом који се одвија у позадини покретања мотора.
Користећи апстракцију у програмирању, можемо сакрити непотребне детаље од корисника. Коришћењем апстракције у нашој апликацији, то неће утицати на крајњег корисника чак и ако променимо интерну имплементацију.
Капсулација
Инкапсулација је поступак помоћу којег се подаци и методе или функције које на њима раде обједињују. Радећи ово, подаци нису лако доступни спољном свету. У ООП-у постижемо инкапсулацију чинећи чланове података приватним и имају јавне функције за приступ тим члановима података.
Наслеђивање
Коришћење наследног објекта једне класе може наследити или стећи својства објекта друге класе. Наслеђивање омогућава поновну употребу кода.
Као такви можемо дизајнирати нову класу стицањем својстава и функционалности друге класе и у овом процесу не треба модификовати функционалност родитељске класе. Предмету додајемо само нову функционалност.
Полиморфизам
Полиморфизам значи много облика.
Полиморфизам је важна карактеристика ООП-а и обично се примењује као преоптерећење оператера или преоптерећење функције. Преоптерећење оператера је процес у коме се оператер понаша другачије у различитим ситуацијама. Слично томе, код преоптерећења функције, иста функција се понаша различито у различитим ситуацијама.
Динамиц Биндинг
ООП подржава динамичко везивање у којем се позив функције разрешава у току извршавања. То значи да се за време извршавања одлучује о коду који ће се извршити као резултат позива функције. Виртуелне функције су пример динамичког везивања.
Порука пролази
У ООП-у објекти међусобно комуницирају помоћу порука. Када објекти комуницирају, информације се преносе напријед-назад између објеката. Порука се обично састоји од имена објекта, имена методе и стварних података који се шаљу другом објекту.
Предности ООП-а
Размотримо неке од предности ООП-а.
# 1) Поновна употребљивост
питања и одговори на интервјуу аналитичара за осигурање квалитета
ООП омогућава поновну употребу постојећег кода путем наслеђивања. Можемо лако стећи постојећу функционалност и побољшати је без потребе за поновним преписивањем кода. То резултира мање надувеним кодом.
# 2) Модуларност
Како модулирамо програм у ООП-у, лако га је изменити или отклонити уколико дође до проблема или ако се дода нова функција или побољшање. Модуларизација такође помаже у јасноћи кода и чини га читљивијим.
# 3) Флексибилност
ООП нам помаже у флексибилном програмирању користећи функцију полиморфизма. Како полиморфизам има много облика, можемо имати операторе или функције који ће радити са многим објектима и тако нас спасити од писања различитих функција за сваки објекат.
# 4) Одржавање
Одржавање кода је лакше јер је лако додати нове класе, објекте итд. Без много реструктурирања или промена.
# 5) Сакривање података и информација
ООП нам помаже у скривању података и на тај начин чува информације од цурења. Кориснику су изложени само подаци који су потребни за несметано функционисање програма скривањем унутрашњих детаља.
Закључак
ООП је најважнија и флексибилна програмска парадигма савременог програмирања. Посебно је користан у моделирању проблема из стварног света и самим тим је веома популаран.
У овом упутству смо разговарали о разним карактеристикама ООП-а. У наставку ћемо детаљно разговарати о свим овим карактеристикама.
Следећа тема у овој серији „ООП са Ц ++“ фокусираће се на класе и објекте у детаље.
=> Кликните овде за апсолутну Ц ++ серију тренинга.
Препоручено читање
- ООП Јава: Увод у објектно оријентисано програмирање на Јави
- Типови података Ц ++
- 10 најбољих алата за науку о подацима у 2021. години за уклањање програмирања
- Апстракција података у језику Ц ++
- Увод у структуре података на језику Ц ++
- Водич за Уник цеви: Цеви у програмирању за Уник
- КТП водич бр. 8 - Сазнајте више о режимима КТП снимања, објектном шпијуну и спремиштима објеката
- 70+ НАЈБОЉИХ Водича за Ц ++ за БЕСПЛАТНО учење Ц ++ програмирања