Какво е OOP?

Обектно-ориентираното програмиране (или OOP) е парадигма на програмирането, при която програмите се записват и структурират около обекти, а не по функции или логика. Тук обектите се дефинират като полета с данни, които имат уникални атрибути и поведение. Те съдържат данни под формата на атрибути и процедури под формата на методи. Обектните процедури могат да имат достъп и да променят данните, налични в даден обект.

Има много езици на OOP, като най-популярните са базирани на класа, където обектите ще бъдат екземпляр от клас. Класът е контейнер за данни и процедури, известен също като data data и член функции. Нека разгледаме пример за предмет като кола. Автомобилът има атрибути като цвят, марка, капацитет на гориво и т.н., и има методи за представяне на поведението на автомобил като старт, ускорение, счупване и др. Класът е план на атрибути и методи и не заема място, докато и освен ако не се направи обект за този клас.

Пример :

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
)

Обектно-ориентирани програмни цели, които ще бъдат приложени в програмирането, в реалния свят като наследяване, полиморфизъм, капсулиране и др., Които ще видим подробно. Основната цел на OOP е да обвързва колективно данните и функциите, които работят върху тях, така че тези данни да са достъпни само от тази функция.

Принципи на ООП

Четирите основни принципа на обектно-ориентираното програмиране са капсулиране, абстракция, наследяване и полиморфизъм.

1. Капсулиране:

Свързването на данни и методи в едно цяло се нарича капсулиране. Капсулирането се осъществява, когато всеки обект в класа запазва състоянието си частно. Данните вътре в това устройство не са достъпни от външни обекти и само тези функции вътре в него могат да имат достъп до него. По този начин обектът управлява състоянието си с помощта на своите методи и за да комуникираме с този обект, ще се нуждаем от помощта на публичните методи от този клас.

2. Абстракция

Абстракцията е удължаване на капсулацията. Това означава предоставяне само на необходимата информация на външния свят, като същевременно се крият вътрешните детайли на прилагането. Той разкрива само подходящите операции за други обекти. Предимството на това е, че можем да променим реализацията, без да засягаме класа, тъй като интерфейсът на метода остава същият.

Нека вземем за пример калкулатор, който приема входа от нас и с натискането на бутон ни дава желания изход, като същевременно ни спестява вътрешните подробности за това как е стигнал до този отговор.

3. Наследяване

Често обектите са сходни по функционалност, споделят част от логиката, но се различават в останалата част. И така, как да използваме повторно общата логика и да разделяме различната логика? Това може да се постигне чрез наследяване. По наследство създаваме нов клас, наречен като детски клас, който се извлича от съществуващия клас, наречен родителски клас, като по този начин формира hier0archy от класове. Детският клас използва повторно полетата и методите на данни, които се изискват от родителския клас, и самостоятелно прилага своята уникална функционалност.

Например, превозното средство може да бъде родителски клас, от който можем да извлечем детски класове като Bike и Car. Те споделят общите свойства да могат да се движат с гориво и да превозват пътници, но се различават по броя на пътниците, които могат да превозват, и повече такива имоти.

4. Полиморфизъм

Полиморфизмът е способността да приемате повече от една форма. Да предположим, че имаме родителски клас и няколко от неговите детски класове. Сега искаме да използваме атрибути и от родителските, и от детските класове, така че как ще бъде постигната? Това може да стане с помощта на Полиморфизъм. В полиморфизма абстрактните образувания се изпълняват по множество начини. Той дава начин да се консумира клас точно като родителския клас, така че да няма объркване със смесването на типа класове, а всеки клас деца продължава да поддържа методите си такъв, какъвто е бил. Това може да стане чрез повторно използване на родителски интерфейс, така че класът деца да може да реализира тези методи в собствената си версия.

Предимства на обектно-ориентираното програмиране

  • Идеята в реалния свят може да бъде демонстрирана, тъй като всичко в OOP се третира като обект.
  • Тъй като използваме концепцията за капсулиране, програмите са по-лесни за тестване и поддръжка.
  • По-бързото развитие на кода се прави, тъй като ние разработваме класове паралелно, а не последователно.
  • OOP осигурява по-голяма сигурност поради извличане на данни. Външният свят не може да получи достъп до скритите данни.
  • Повторната употреба може да бъде постигната чрез използване на класове, които вече са написани.

Недостатъци на обектно-ориентираното програмиране

  • Проектирането на програма с концепция OOP може да бъде сложно.
  • Един програмист трябва предварително да планира разработването на програма в OOP.
  • Размерът на програмите, разработени с OOP, е по-голям от тези, разработени с процедурен подход.
  • Тъй като OOP програмите са с по-големи размери, времето за изпълнение на тези програми също е повече.

Как познаването на OOP може да помогне в растежа на кариерата?

Много от основните тенденции днес като Java и Ruby, използват обектно-ориентирани концепции за програмиране. OOP езиците помагат при писането на софтуер за приложения като мобилни, уеб приложения и игри. В тези области има високи приходи, като най-добрите възможности за работа на програмистите да лежат в тези полета. Лесно е да преминем към различни технологии и езици с основите на OOP и по този начин разширява нашите перспективи за кариера. Един недостатък в това се изразява в експертизата. Обикновено компаниите търсят практически опит в езиците и концепциите на OOP, затова се препоръчва да практикуват, докато вървим в процеса на обучение.

заключение

Обектно-ориентираното програмиране опростява процеса на програмиране за нас. Той има много стойности като повторна употреба, ефективност и поддръжка на код. Въпреки че първоначално може да е трудно да разберете концепциите за OOPs, уверявам ви, че плодът ще си струва усилията. Надявам се тази статия да ви помогне да опростите тези понятия за вас!

Препоръчителен член

Това е ръководство за Какво е OOP? Тук обсъдихме концепциите, определението и принципите с предимствата и недостатъците на OOP. Можете да разгледате и другите ни предложени статии, за да научите повече -

  1. Hadoop с отворен код?
  2. Какво е наследяване на Java?
  3. Какво е многопоточност в C #?
  4. Какво е ASP.Net Web Services?