Об'єкти
Ще Платон розрізняв три світи: світ речей, який постійно змінюється, світ ідей (ейдосів)— вічний та незмінний і, у проміжку між ними — математичні об'єкти. https://itc.ua/articles/oop_i_uml_korotko_i_bez_mifov_7431/
Об'єктно-орієнтоване програмування є етапом продовження розвитку процедурного програмування, де дані і підпрограми їх обробки (тобто функції) формально не пов'язані
Об'єктно-орієнтована програма по суті складається з опису структури та поведінки проектованої системи:
- З яких частин складається система
- У чому полягає відповідальність кожної з частин
Основними концепціями об'єктно-орієнтованого програмування є наступні.
Абстрагування - це спосіб виділити набір значущих характеристик об'єкта, виключаючи з розгляду незначущі. Відповідно, абстракція - це набір всіх таких характеристик.
Прототип - це об'єкт-зразок, за образом і подобою якого створюються інші об'єкти.
Об'єкт - це сутність в адресному просторі обчислювальної системи, що з'являється при створенні екземпляра класу або копіюванні прототипу (змінна)
Клас - об'єкти з подібною поведінкою (абстрактний тип даних)
Поліморфізм - можливість записувати різні об'єкти в змінні одного і того ж типу, або спільне використання об'єктів різних класів, здатних обробляти однотипні повідомлення
Спадкування - опис нового класу на основі вже існуючого з частково або повністю позиченою функціональністю
Інкапсуляція - об'єднання даних і методів, що працюють з ними, в класі і приховання деталей реалізації від користувача
Об'єктно-орієнтована програма
Процедури сформувалися в модулі - незалежні частини коду до рівня збірки програми
Об'єкти сформувалися в компоненти - незалежні частини коду до рівня виконання програми
Взаємодія об'єктів відбувається за допомогою повідомлень (виклик методу - процедури і функції, пов'язані з класом)
Фрагмент коду ООП програми
Докладніше про патерни проектування можна прочитати за посиланням https://sites.google.com/site/designpatternseasy/ а також http://lib.chdu.edu.ua/pdf/metodser/190/5.pdf