ви ООП панувало процедурне програмування. Тоді основою програм були функції і процедури, тобто дії. Розробник визначав, які дії, які функції потрібні йому для вирішення поставленого завдання, реалізовував ці функції і об'єднував їх в програму. Програма звичайно мала досить чіткий алгоритм роботи - послідовність операцій, що починається в якійсь точці і що закінчується в одній або безлічі інших точок.
В об'єктно-орієнтованому програмуванні і проектуванні головної, відправною точкою є не процедура, не дія, а об'єкт. Взагалі кажучи, такий підхід видається досить природним, оскільки в реальному світі ми маємо справу саме з об'єктами (людьми, предметами, технічними пристроями), що взаємодіють один з одним. Та й взаємодія користувача з комп'ютерною програмою - це теж взаємодія двох об'єктів - програми і людини, які обмінюються один з одним певними повідомленнями.
Прикладна програма (додаток), побудована за принципами об'єктної орієнтації - це не послідовність якихось операторів, не деякий жорсткий алгоритм. Об'єктно-оріентрованная програма - це сукупність об'єктів і способів їх взаємодії. Окремим (і головним) об'єктом при такому підході у багатьох випадках можна вважати користувача програми. Обмін між об'єктами відбувається за допомогою повідомлень.
ООП - це сукупність принципів, правил та ідей, що дозволяють істотно зменшити зусилля, необхідні для створення складних програмних систем.
В об'єктно-орієнтованому програмуванні використовуються наступні базові правила:
визначення класів, які будуть використовуватися;
визначення всіх необхідних операцій для кожного класу;
забезпечення розширюваності (відкритості) класів з використанням принципу успадкування.
Базовими блоками об'єктно-орієнтованої програми є об'єкти і класи. Об'єкт має стан, поведінку і може бути однозначно ідентифікований (іншими словами, має унікальне ім'я). Клас - це безліч об'єктів, що мають загальну структуру і загальна поведінка. Клас - опис (абстракція), яке показує, як побудувати існуючу в часі і просторі змінну цього класу, звану об'єктом.
Стан об'єкта об'єднує всі його поля даних (статичний компонент) і поточні значення кожного з цих полів (динамічний компонент). Поведінка об'єкта визначає, як об'єкт змінює свої стани і взаємодіє з іншими об'єктами. Ідентифікація (розпізнавання) об'єкта - це властивість, яка дозволяє відрізнити об'єкт від інших об'єктів того ж або інших класів.
До базовим принципам ООП належать [2]:
q пакетування (encapsulation);
q спадкування (inheritance);
q поліморфізм (polymorphism);
q передача повідомлень.
Пакетування передбачає поєднання в одному об'єкті даних і функцій, які маніпулюють цими даними. Доступ до деяких даних всередині пакету може бути або заборонений, або обмежений.
Успадкування дозволяє використовувати бібліотеки класів і розвивати їх (удосконалювати і модифікувати бібліотечні класи) в конкретній програмі.
Поліморфізм дозволяє використовувати одні й ті ж функції для вирішення різних завдань. Віртуальні (модифікуються) функції є прикладом реалізації цього принципу.
Кожен типовий елемент до...