Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Основні принципи об’єктно-орієнтованого програмування
Об'єктно-орієнтоване програмування (ООП) є результатом еволюції модульного програмування і програмування, керованого подіями. Воно з’явилося в 90-х роках 20-го століття як реакція на зростання складності програмного забезпечення (ПЗ) і визначило розвиток технології і мов програмування на наступні роки. Ця парадигма разом з компонентною зараз є найбільш популярною серед розробників програмних систем. У 80-і роки минулого століття стало зрозуміло, що надії на те, що структурне програмування (і проектування) зможе суттєво покращити якість програм і продуктивність праці програмістів не виправдалися. Якщо на початку ери комп'ютеризації вартість апаратних засобів (hardware) значно перевищувала вартість програмних засобів (ПЗ) (software), то згодом ситуація змінилася. Витрати на розробку і супровід ПЗ зростали, а вартість розробки апаратних засобів - знижувалася. Об'єктно-орієнтований підхід базується на «старому» фундаменті процедурної парадигми і успадковує такі її кращі риси, як модульність і абстракція типів даних. Основна новизна цієї парадигми в тому, що в ній поєднані структури даних і функції обробки цих даних. Отже, повторимо основні концепції ООП. Визначення. Об'єктно-орієнтоване програмування (ООП) – парадигма, заснована на представленні предметної області у вигляді системи взаємозв'язаних абстрактних об'єктів і їх реалізацій. Зараз в парадигмі об'єктно-орієнтованого програмування домінують два стилі – програмування, базоване на класах (class-based programming) і програмування, базоване на прототипах (prototype-based programming) – відносно новий напрям ООП. Програмування, базоване на класах. На відміну від процедурного програмування, в якому дані і функції їх обробки не зв'язані, в ООП визначена нова структура даних - клас - абстрактний тип, в якому окрім даних містяться функції їх обробки (методи). Розглянемо основні поняття ООП: об'єкт, клас, властивість і метод. Кожний об'єкт в ООП має свій тип (клас). Клас представляє собою абстрактний тип даних, який має: Поля – атрибути об'єкту. Властивості - параметри об'єкту (значення його атрибутів). Методи - дії, які можна виконувати над об'єктом цього типу, або які сам об'єкт може виконувати (процедури та функції). Події - повідомлення, які посилає об'єкт (або посилаються об'єкту) при зміні стану.
Кожний об'єкт є екземпляром деякого класу об'єктів. Один клас відрізняється від інших іменем і, звичайно, набором інтерфейсів. Інтерфейси, у свою чергу, - це набір повідомлень, які можна посилати об'єкту. Реалізуються інтерфейси у вигляді відкритих (public) методів класу. В основі об'єктно-орієнтованого програмування лежать 4 основні принципи: Абстракція - опис взаємодії виключно в термінах повідомлень/подій в предметній області. Об'єкти надають не повну інформацію про реальні властивості предметної області. Їх моделі адекватні вирішуваній задачі, працювати з ними зручніше, ніж з низькорівневим описом усіх можливих властивостей і реакцій об'єкту. Інкапсуляція - здатність приховування реалізації (властивостей і методів усередині класу), тобто можливість доступу до об'єкту і маніпулювання ним виключно за допомогою властивостей (get, set) і методів класу. До основних властивостей інкапсуляції відносяться наступні: 1. сумісне зберігання даних і функцій (тобто властивостей і методів) усередині класу; 2. приховування внутрішньої інформації від користувача (що забезпечує більшу безпеку програмі) – за допомогою специфікаторів доступу private, internal; 3. ізоляція користувача від деталей реалізації (що забезпечує незалежність від моделі обчислень і потенційно дружній інтерфейс програми). Наслідування - можливість породжувати один клас від іншого із збереженням всіх властивостей і методів базового класу і додавання, за потреби, нових властивостей і методів. Наслідування призначене для відображення такої властивості систем, як ієрархічність. У мовах програмування поняття наслідування означає застосовність всіх або деяких властивостей та/або методів базового класу для всіх класів, похідних від нього. Крім того, збереження властивостей і/або методів базового класу повинне забезпечуватися і для всіх конкретизацій (тобто конкретних об'єктів) будь-якого похідного класу. Поліморфізм – це концепція, що дозволяє мати різні реалізації для одного і того ж методу, які будуть вибиратися залежно від типу об'єкту, переданого до методу при його виклику.
В об'єктно-орієнтованому програмуванні під поліморфізмом розуміється можливість оперувати об'єктами, не володіючи точним знанням їх типів. Питання: Які приклади поліморфізму можна навести? Відповідь: в С++, C# перевантаження функцій – одне і те саме ім'я функції може використовуватися для передачі повідомлень об'єктам різних класів. Такі функції повинні мати різні списки параметрів. Отже - Класи, наслідування і поліморфізм - фундаментальні властивості, яким повинні задовольняти мови програмування, щоб підтримувати об'єктно-орієнтовану парадигму програмування. Для реалізації цих властивостей різні мови програмування використовують різні підходи.
|
||||||
Последнее изменение этой страницы: 2017-02-21; просмотров: 1333; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.144.127.232 (0.005 с.) |