object oriented programming c
Въведение в обектно-ориентираното програмиране в C ++.
С този урок стартираме поредица от уроци, за да научим за C ++ като обектно-ориентиран език за програмиране.
Както знаем, преди обектно-ориентираното програмиране (OOP) програмите се писаха с помощта на процедурни езици. Процесуалните езици подчертават функциите. По-големите проблеми се разбиват на по-малки подпроблеми и се записват като функции.
=> Вижте тук, за да разгледате пълния списък с уроци за C ++.
Процесуалните езици не обръщат внимание на данните. В резултат на това възможността да не се обърне внимание на проблема по ефективен начин беше висока. Освен това, тъй като данните бяха почти пренебрегнати, сигурността на данните беше лесно компрометирана.
Всички тези недостатъци на процедурното програмиране бяха преодолени чрез обектно-ориентирано програмиране.
В този урок ще обсъдим основите на обектно-ориентираното програмиране и накратко всички характеристики на ООП.
Какво ще научите:
- Обектно-ориентирано програмиране в C ++
- Защо C ++ е частичен ООП?
- OOP функции
- Предимства на ООП
- Заключение
- Препоръчително четене
Обектно-ориентирано програмиране в C ++
Обектно-ориентираното програмиране се върти около данните. Основната програмна единица на ООП е обектът. Обектът е представяне на обект в реално време и се състои от данни и методи или функции, които работят с данни. По този начин данните и функциите са тясно обвързани и се гарантира сигурността на данните.
В ООП всичко се представя като обект и когато се изпълняват програми, обектите си взаимодействат помежду си, като предават съобщения. Обектът не трябва да знае подробностите за изпълнението на друг обект за комуникация.
Освен обекти, OOP поддържа различни функции, които са изброени по-долу:
- Класове
- Капсулиране
- Абстракция
- Наследяване
- Полиморфизъм
Използвайки OOP, ние пишем програми, използвайки класове и обекти, като използваме горните функции. Езикът за програмиране се казва като истински обектно-ориентиран език за програмиране, ако всичко, което той представлява, използва обект. Smalltalk е един език, който е чист обектно-ориентиран език за програмиране.
От друга страна, за програмни езици като C ++ и Java се казва, че са частично обектно-ориентирани езици за програмиране.
Защо C ++ е частичен ООП?
Езикът C ++ е проектиран с основното намерение да използва обектно-ориентирани функции за C език.
Въпреки че езикът C ++ поддържа функциите на OOP като класове, обекти, наследяване, капсулиране, абстракция и полиморфизъм, има няколко причини, поради които C ++ е класифициран като частичен обектно-ориентиран език за програмиране.
най-доброто безплатно приложение за изтегляне на музика за mp3 за android
Представяме няколко от тези причини по-долу:
# 1) Създаването на клас / обекти не е задължително
В C ++ основната функция е задължителна и винаги е извън класа. Следователно можем да имаме само една основна функция в програмата и да можем без класове и обекти.
Това е първото нарушение на езика Pure OOP, където всичко е представено като обект.
# 2) Използване на глобални променливи
C ++ има концепция за глобални променливи, които са декларирани извън програмата и могат да бъдат достъпни от всеки друг обект на програмата. Това нарушава капсулирането. Въпреки че C ++ поддържа капсулиране по отношение на класове и обекти, той не се грижи за него в случай на глобални променливи.
# 3) Наличие на приятелска функция
C ++ поддържа приятелски клас или функция, която може да се използва за достъп до частни и защитени членове на други класове, като ги направи приятел. Това е още една характеристика на C ++, която нарушава OOP парадигмата.
В заключение, въпреки че C ++ поддържа всички OOP функции, споменати по-горе, той също така предоставя функции, които могат да действат като решение за тези функции, така че да можем да се справим и без тях. Това прави C ++ частичен обектно-ориентиран език за програмиране.
OOP функции
Тук ще представим различни функции на ООП, които се използват за програмиране.
Класове и обекти
Обектът е основна единица в обектно-ориентираното програмиране. Обектът съдържа данни и методи или функции, които работят с тези данни. Обектите заемат място в паметта.
Класът, от друга страна, е план на обекта. И обратно, обект може да бъде дефиниран като екземпляр на клас. Класът съдържа скелет на обекта и не заема място в паметта.
Нека вземем Пример на автомобилен обект. Автомобилен обект на име „Maruti“ може да има данни като цвят; марка, модел, ограничение на скоростта и др. и функции като ускоряване. Определяме друг обект „ford“. Това може да има подобни данни и функции като тези на предишния обект плюс още някои допълнения.
По същия начин можем да имаме множество обекти с различни имена, които имат сходни данни и функции и някои незначителни вариации.
По този начин, вместо да дефинираме тези подобни данни и функции в тези различни обекти, ние дефинираме план за тези обекти, който е клас, наречен Car. Всеки от обектите по-горе ще бъде екземпляри от този клас автомобил.
Абстракция
Абстракцията е процес на скриване на неподходяща информация от потребителя. Например , когато шофираме колата, първо стартираме двигателя, като поставим ключ. Не сме наясно с процеса, който протича във фонов режим за стартиране на двигателя.
Използвайки абстракция в програмирането, можем да скрием ненужните подробности от потребителя. Използвайки абстракция в нашето приложение, крайният потребител не е засегнат, дори ако променим вътрешната реализация.
Капсулиране
Капсулирането е процес, при който данните и методите или функциите, работещи върху тях, се обединяват. По този начин данните не са лесно достъпни за външния свят. В OOP постигаме капсулиране, като правим членовете на данните частни и имаме публични функции за достъп до тези членове.
Наследяване
Използването на обект за наследяване от един клас може да наследи или да придобие свойствата на обекта от друг клас. Наследяването осигурява повторна употреба на кода.
Като такива можем да проектираме нов клас чрез придобиване на свойствата и функционалността на друг клас и в този процес не е необходимо да променяме функционалността на родителския клас. Ние добавяме само нова функционалност към класа.
Полиморфизъм
Полиморфизмът означава много форми.
Полиморфизмът е важна характеристика на ООП и обикновено се прилага като претоварване на оператора или претоварване на функцията. Претоварването на оператора е процес, при който операторът се държи по различен начин в различни ситуации. По същия начин, при претоварване на функция, една и съща функция се държи по различен начин в различни ситуации.
Динамично обвързване
OOP поддържа динамично свързване, при което извикването на функция се разрешава по време на изпълнение. Това означава, че кодът, който ще бъде изпълнен в резултат на извикване на функция, се решава по време на изпълнение. Виртуалните функции са пример за динамично обвързване.
Съобщението преминава
В ООП обектите комуникират помежду си с помощта на съобщения. Когато обектите комуникират, информацията се предава напред-назад между обектите. Съобщението обикновено се състои от името на обекта, името на метода и действителните данни, които трябва да бъдат изпратени на друг обект.
Предимства на ООП
Нека обсъдим някои от предимствата на ООП.
# 1) Многократна употреба
OOP позволява повторно използване на съществуващия код чрез наследяване. Можем лесно да придобием съществуващата функционалност и да я подобрим, без да се налага да пренаписваме кода отново. Това води до по-малко подут код.
# 2) Модулност
Докато модулираме програмата в ООП, лесно е да я модифицирате или отстраните, ако възникне проблем или трябва да се добави нова функция или подобрение. Модуларизацията също помага за яснотата на кода и го прави по-четлив.
създаване на масив от низове java
# 3) Гъвкавост
OOP ни помага с гъвкаво програмиране, използвайки функцията за полиморфизъм. Тъй като полиморфизмът приема много форми, можем да имаме оператори или функции, които да работят с много обекти и по този начин да ни спасят от писане на различни функции за всеки обект.
# 4) Поддържане
Поддържането на кода е по-лесно, тъй като е лесно да се добавят нови класове, обекти и т.н., без много преструктуриране или промени.
# 5) Скриване на данни и информация
OOP ни помага при скриване на данни, като по този начин предпазва информацията от изтичане. Само данните, необходими за безпроблемното функциониране на програмата, са изложени на потребителя чрез скриване на вътрешните подробности.
Заключение
OOP е най-важната и гъвкава парадигма за програмиране на съвременното програмиране. Той е особено полезен при моделиране на реални проблеми и поради това е много популярен.
В този урок обсъдихме различните характеристики на ООП. В бъдеще ще обсъдим подробно всички тези функции.
Следващата тема от тази поредица „OOP с C ++“ ще се фокусира върху класове и обекти в детайли.
=> Щракнете тук за абсолютната серия за обучение на C ++.
Препоръчително четене
- OOP Java: Въведение в обектно-ориентираното програмиране в Java
- Типове данни на C ++
- Топ 10 на инструментите за наука за данни през 2021 г. за премахване на програмирането
- Абстракция на данни в C ++
- Въведение в структурите на данни в C ++
- Урок за тръби на Unix: Тръби в програмирането на Unix
- QTP урок # 8 - Научете повече за QTP режимите на запис, Object Spy и Object Repositories
- 70+ НАЙ-ДОБРИ уроци за C ++, за да научите БЕЗПЛАТНО програмиране на C ++