Об'єктно-орієнтоване програмування
Введення
Концепція об'єктно-орієнтованого програмування має на увазі, що основою управління процесом реалізації програми є передача повідомлень об'єктам. Тому об'єкти повинні визначатися спільно з повідомленнями, на які вони повинні реагувати при виконанні програми. У цьому полягає головна відмінність ООП від процедурного програмування, де окремо певні структури даних передаються в процедури (функції) в якості параметрів. Таким чином, об'єктно-орієнтована програма складається з об'єктів - окремих фрагментів коду, що обробляє дані, які взаємодіють один з одним через певні інтерфейси.
Об'єктно-орієнтована мова програмування повинен володіти наступними властивостями:
. абстракції - формальне про якості або властивості предмета шляхом уявного видалення деяких частковостей або матеріальних об'єктів;
. інкапсуляції - механізму, що зв'язує вмести код і дані, якими він маніпулює, і захищає їх від зовнішніх перешкод і некоректного використання;
. спадкування - процесу, за допомогою якого один об'єкт набуває властивостей іншого, тобто підтримується ієрархічної класифікації;
. поліморфізму - властивості, що дозволяє використовувати один і той же інтерфейс для загального класу дій.
Розробка об'єктно-орієнтованих програм складається з наступних послідовних робіт:
визначення основних об'єктів, необхідних для вирішення даного завдання;
визначення закритих даних (даних стану) для вибраних об'єктів;
визначення другорядних об'єктів і їх закритих даних;
визначення ієрархічної системи класів, що представляють вибрані об'єкти;
визначення ключових повідомлень, які повинні обробляти об'єкти кожного класу;
розробка послідовності виразів, які дозволяють вирішити поставлену задачу;
розробка методів, що обробляють кожне повідомлення;
очистка проекту, тобто усунення всіх допоміжних проміжних матеріалів, що використовувалися при проектуванні;
кодування, налагодження, компонування і тестування.
Об'єктно-орієнтоване програмування дозволяє програмісту моделювати об'єкти певної предметної області шляхом програмування їх змісту та поведінки в межах класу. Конструкція «клас» забезпечує механізм інкапсуляції для реалізації абстрактних типів даних. Інкапсуляція як би приховує і подробиці внутрішньої реалізації типів, та зовнішні операції і функції, допустимі для виконання над об'єктами цього типу.
програмування інкапсуляція спадкування поліморфізм
1. Що таке об'єктно-орієнтоване програмування
Елементи об'єктно-орієнтованого програмування (ООП) з'явилися на початку 70-х років в мові моделювання Симула, потім отримали свій розвиток, і в даний час ООП належить до числа провідних технологій програмування.
Основна мета ООП, як і більшості інших підходів до програмування - підвищення ефективності розробки програм. Ідеї ??ООПвиявилися плідними і знайшли застосування не тільки в мовах програмування, але і в інших областях Computer Science, наприклад, в області розробки операційних систем.
Поява ООП було пов'язано з тим спостереженням, що комп'ютерні програми являють собою опис дій, виконуваних над різними об'єктами. У ролі останніх можуть виступати, наприклад, графічні об'єкти, записи в базах даних або сукупності числових значень. У традиційних методах програмування зміна даних або правил і методів обробки часто призводило до необхідності значного зміни програми. Всяке істотне зміни програми - це велика неприємність для програміста, так як при цьому збільшується ймовірність помилок, внаслідок чого зростає час, необхідний для «доведення» програми. Використання ООП дозволяє вийти з такої ситуації з мінімальними втратами, зводячи необхідну модифікацію програми до її розширення і доповнення. Необхідно зауважити, що ООП не є панацеєю від всіх бід, але його цінність як передової технології програмування безсумнівна. Вивчення ідей і методів ООП може істотно спростити розробку і налагодження складних програм.
Ми вже звикли використовувати у своїх програмах процедури і функції програмування тих складних дій з обробки даних, які доводиться виконувати багаторазово. Використання підпрограм свого часу було важливим кроком на шляху до підвищення ефективності програмування.
Підпрограма може мати формальні предмети, які...