Об'єктно-орієнтоване програмування проти процедурного програмування
Об'єктно-орієнтоване програмування (OOP) та процедурне програмування - це дві парадигми програмування. Парадигма програмування - це фундаментальний стиль комп'ютерного програмування, і вони відрізняються тим, як представлені різні елементи програми та як визначаються кроки для вирішення завдань. Як випливає з назви, OOP зосереджується на представленні проблем із використанням об'єктів реального світу та їх поведінки, тоді як Процедурне програмування займається поданням рішень проблем із використанням процедур, що представляють собою набори кодів, що працюють у певному порядку. Існують мови програмування, які підтримують основні аспекти OOP (називаються мовами OOP), процедурні (називаються мовами процедури) та обидва. Але важливо зазначити, що OOP і Процедур - це два способи представлення проблем, які потрібно вирішити, і не має значення, якою мовою користуватися. Іншими словами, мови OOP можуть використовуватися для процесуального програмування, тоді як процедурні мови іноді можуть використовуватися для OOP, докладаючи певних зусиль.
Процедурне програмування - це спосіб програмування, визначаючи набір кроків для вирішення певної проблеми та точний порядок їх виконання, щоб досягти бажаного результату або стану. Наприклад, якщо ви хочете розрахувати залишок коштів на кінцевий місяць для банківського рахунку, необхідні кроки будуть наступними. Спочатку ви отримуєте стартовий баланс рахунку, а потім зменшуєте всі дебетові суми, що відбулися протягом місяця. Після цього ви додаєте всі суми кредитів, що мали місце протягом місяця. Після закінчення процесу ви отримаєте залишок рахунку на кінець місяця. Однією з головних концепцій процесуального програмування є процедурний виклик. Процедура, також відома як підпрограма, метод або функція, містить упорядкований перелік інструкцій, які необхідно виконати. Процедуру можна викликати в будь-який час під час виконання будь-якою іншою процедурою або самою собою. Прикладами процедурних мов програмування є C та Pascal.
В ООП основна увага приділяється роздуму над проблемою, яку слід вирішити з точки зору елементів реального світу, і представляє проблему з точки зору об'єктів та їх поведінки. Об'єкт - це структура даних, яка дуже нагадує якийсь об'єкт реального світу. Об'єкти містять поля даних та методи, які представляють атрибути та поведінку об'єктів реального світу. Існує кілька важливих концепцій OOP, таких як абстракція даних, інкапсуляція, поліморфізм, обмін повідомленнями, модульність та успадкування. Деякі популярні мови OOP - Java та C #. Однак вони можуть бути використані для виконання процедурного програмування.
Ключова відмінність OOP від процесуального програмування полягає в тому, що фокус процесуального програмування полягає в розбитті завдання програмування на колекцію змінних і підпрограм, тоді як основна увага OOP полягає в розбитті завдання програмування на об'єкти, які інкапсулюють дані та методи. Найбільш помітна відмінність може полягати в тому, що в той час, як Процедурне програмування використовує процедури для прямої роботи над структурами даних, OOP об'єднає дані та методи разом, щоб об'єкт працював над власними даними. Що стосується номенклатури, процедуру, модуль, виклик процедури та змінну в Процедурному програмуванні часто називають методом, об'єктом, повідомленням і атрибутом в OOP відповідно.