Шта је ООП?
Објектно оријентирано програмирање (или ООП) је парадигма програмирања у којој се програми пишу и структурирају око објеката, а не функција или логике. Овде су објекти дефинисани као поља података која имају јединствене атрибуте и понашање. Садрже податке у облику атрибута и процедура у облику метода. Објектне процедуре могу приступити и модифицирати податке присутне у објекту.
Постоји много ООП језика, од којих је најпопуларнији заснован на класама, где ће објекти бити примера класе. Класа је спремник података и поступака, познат и као дата подаци и чланске функције. Размотримо пример објекта као аутомобила. Аутомобил има атрибуте попут боје, марке, капацитета горива итд. И има методе за представљање понашања аутомобила попут старта, убрзавања, пробијања итд. Класа је нацрт атрибута и метода и не заузима простор, све док и ако се не направи објект за ту класу.
Пример :
class car
(
char name(20); // name and colour are attributes
char colour(20);
public void start()() //start is a method
);
void main()
(
car c1; //c1 is an object
)
Објектно оријентисани циљеви програмирања који ће се имплементирати у програмирање, ентитета из стварног свијета попут насљеђивања, полиморфизма, енкапсулације итд. Које ћемо детаљно видјети. Главни циљ ООП-а је заједничко повезивање података и функција које на њима дјелују, тако да је тим подацима доступан само помоћу те функције.
Принципи ООП-а
Четири главна принципа објектно оријентисаног програмирања су инкапсулација, апстракција, насљеђивање и полиморфизам.
1. Инкапсулација:
Везивање података и метода у једну јединицу назива се енкапсулацијом. Инкапсулација се врши када сваки објект унутар класе задржи своје стање приватним. Подаци унутар ове јединице нису доступни вањским објектима и само оне функције унутар ове јединице могу јој приступити. Дакле, објект управља својим стањем уз помоћ својих метода, а за комуникацију са тим објектом требат ће нам помоћ јавних метода ове класе.
2. Апстракција
Апстракција је продужетак енкапсулације. То значи пружање само потребних информација спољашњем свету, истовремено скривање унутрашњих детаља примене. Открива само одговарајуће операције за остале објекте. Предност овог је у томе што можемо променити имплементацију без утицаја на класу, јер сучеље метода остаје исто.
Узмимо за пример калкулатор који нам узима улаз и притиском на дугме даје нам жељени излаз, штедећи нам интерне детаље како смо дошли до тог одговора.
3. Наслеђивање
Предмети су често слични у функционалности, деле део логике, али се разликују у остатку. Па како поново користити заједничку логику и одвојити различиту логику? То се може постићи насљеђивањем. У наслеђивању стварамо нову класу која се зове дечја класа која је изведена из постојеће класе која се назива родитељска класа и тако формира хиер0арцхус класа. Дечија класа поново користи поља података и методе које захтева од родитељске класе и самостално имплементира своју јединствену функционалност.
На пример, возило може бити родитељска класа из које можемо изводити дечије часове попут бицикла и аутомобила. Дијеле заједничке особине могућности покретања горива и превоза путника, али се разликују у броју путника које могу превозити и више таквих својстава.
4. Полиморфизам
Полиморфизам је способност узимања више облика. Претпоставимо да имамо разред родитеља и неколико његових дечијих часова. Сада желимо да користимо атрибуте и родитељске и дечије класе, па како ће то бити постигнуто? То се може постићи полиморфизмом. У полиморфизму апстрактни ентитети се изводе на више начина. То даје начин да се класа конзумира точно онако као што је родитељска класа, тако да не долази до забуне у мешању врсте класа, а свака дечија класа наставља да држи своје методе онаквима каква је била. То се може учинити поновном употребом родитељског сучеља тако да надређена класа може имплементирати ове методе у својој властитој верзији.
Предности објектно оријентисаног програмирања
- Идеја из стварног света може се показати, јер се све у ООП-у третира као предмет.
- Како користимо концепт инкапсулације, програми су лакши за тестирање и одржавање.
- Бржи развој кода је учињен, јер развијамо класе паралелно, а не узастопно.
- ООП пружа већу сигурност због апстракције података. Спољни свет не може приступити скривеним подацима.
- Поновна употреба може се постићи коришћењем предавања која су већ написана.
Недостаци објектно оријентисаног програмирања
- Дизајнирање програма са ООП концептом може бити тешко.
- Програмер мора претходно да испланира развој програма у ООП-у.
- Величина програма развијених с ООП-ом већа је од оних развијених у процедуралном приступу.
- Пошто су ООП програми веће величине, време извршења за ове програме је такође више.
Како познавање ООП-а може помоћи у расту каријере?
Многи од главних трендовских језика ових дана, попут Јава и Руби, користе концепте програмирања оријентисане ка објектима. ООП језици помажу у писању софтвера за апликације попут мобилних, веб апликација и игара. На овим пољима су велике зараде, попут најбољих прилика за посао програмера који леже у овим пољима. Лако је прећи на различите технологије и језике са основама ООП-а, а тиме се проширују и наши изгледи за каријеру. Један недостатак у овом случају је стручност. Обично компаније траже практично искуство у ООП језицима и концептима, па се препоручује вежбати током процеса учења.
Закључак
Објектно оријентисано програмирање поједностављује процес програмирања за нас. Има многе вредности попут употребе, ефикасности и одржавања кода. Иако је у почетку можда тешко разумети ООП-ове концепте, уверавам вас да ће воће бити вредно труда. Надам се да је овај чланак помогао у поједностављивању тих концепата за вас!
Препоручени чланак
Ово је водич за шта је ООП? Овде смо разговарали о појмовима, дефиницији и принципима са предностима и недостацима ООП-а. Можете и да прођете кроз друге наше предложене чланке да бисте сазнали више -
- Да ли је Хадооп Опен Соурце?
- Шта је наслеђивање Јава?
- Шта је Мултитхреадинг у Ц #?
- Шта је АСП.Нет Веб Сервицес?