КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Об'єктно-орієнтоване програмування
В міру розвитку обчислювальної техніки виникали різні концепції програмування. На кожному етапі створювався новий підхід, що допомагав програмістам справлятися зі зростаючим ускладненням програм. Перші програми створювалися за допомогою ключових перемикачів на передній панелі комп'ютера. Очевидно, що такий спосіб підходить тільки для дуже невеликих програм. Потім була винайдена мова асемблера, що дозволяла писати довші програми. Використовуючи мову високого рівня, наприклад FORTRAN програмісти могли писати програми до кількох тисяч рядків довжиною. Для того часу такий підхід до програмування був найбільш перспективним. Однак мова програмування, що розумілася легко в коротких програмах, у великих програмах ставала нечитабельною (і некерованою). Порятунок від таких неструктурованих програм прийшов після винаходу в 1960 р. мов структурного програмування. До них належать мови Алгол, Паскаль і С. Структурне програмування має на увазі точно позначені керуючі структури, програмні блоки, відсутність (чи, принаймні, мінімальне використання) операторів GОТО, автономні підпрограми, у яких підтримується рекурсія і локальні змінні. Суттю структурного програмування є можливість розбивки програми на її складові елементи. Використовуючи структурне програмування, середній програміст може створювати і підтримувати програми понад 50000 рядків довжиною. Хоча структурне програмування, при його використанні для написання помірно складних програм, принесло гарні результати, воно виявлялося недієвим, коли програма досягала певної довжини. Щоб написати більш складну програму, необхідний був новий підхід до програмування. Як наслідок було розроблено принципи об'єктно-орієнтованого програмування (ООП). ООП акумулює найкращі ідеї, втілені в структурному програмуванні, і поєднує їх з могутніми концепціями, які дозволяють оптимально організовувати програми. Об'єктно-орієнтоване програмування дозволяє розкласти проблему на пов'язані між собою задачі. Кожна проблема стає самостійним об'єктом, що містить свої власні коди і дані, які належать до цього об'єкта. У цьому разі вся процедура в цілому спрощується і програміст одержує можливість оперувати з набагато більшими за обсягом програмами. Усі мови ООП, включаючи С++, ґрунтуються на трьох основних концепціях: інкапсуляції, поліморфізмі і спадкуванні. Розглянемо ці концепції. Інкапсуляція - це механізм, що поєднує дані і код, який маніпулює з цими даними, і захищає те й інше від зовнішнього втручання чи неправильного використання. В об'єктно-орієнтованому програмуванні код і дані можуть бути об'єднані разом; у цьому випадку кажуть, що створюється так звана «чорна скринька». Усі необхідні дані і коди перебувають усередині неї. Коли коди і дані поєднуються таким чином, створюється об'єкт. Іншими словами, об'єкт - це те, що підтримує інкапсуляцію. Насправді об'єкт є змінною визначеного користувачем типу. Може здатися дивним, що об'єкт, який поєднує коди і дані, можна розглядати як змінну. Однак стосовно об'єктно-орієнтованого програмування це саме так. Кожен елемент даних такого типу є складеною змінною. Поліморфізм - це властивість, яка дозволяє те саме ім'я використовувати для розв'язання двох чи більше задач, технічно різних. Метою поліморфізму, стосовно ООП, є використання одного імені для завдання загальних для класу дій. Виконання кожної конкретної дії буде визначатися типом даних. Наприклад, для мови С, у якій поліморфізм підтримується недостатньо, віднайдення абсолютної величини числа вимагає трьох різних функці. Ці функції підраховують абсолютну величину цілих, довгих цілих і чисел із плаваючою крапкою відповідно. У С++ кожна з цих функцій може бути названа тільки однією абривіатурою аbs. У С++ можна використовувати одне ім'я функції для безлічі різних дій. Це називається перевантаженням функції. У більш загальному сенсі, концепцією поліморфізму є ідея «один інтерфейс, безліч методів». Це означає, що можна створити загальний інтерфейс для групи близьких за змістом дій. При цьому виконання конкретної дії залежить від даних. Перевагою поліморфізму є те, що він допомагає знижувати складність програм, дозволяючи використання того ж інтерфейсу для задавання єдиного класу дій. Вибір же конкретної дії, залежно від ситуації, покладається на компілятор. Вам, програмісту, не потрібно робити цього вибору самому. Потрібно тільки пам'ятати і використовувати загальний інтерфейс. Ключовим у розумінні поліморфізму є те, що він дозволяє маніпулювати об'єктами різного ступеня складності шляхом створення спільного для них стандартного інтерфейсу для реалізації схожих дій. Спадкування – це процес, за допомогою якого один об'єкт може набувати властивостей іншого. Точніше, об'єкт може успадковувати основні властивості іншого об'єкта і додавати до них риси, характерні тільки для нього. Спадкування є важливим, оскільки воно дозволяє підтримувати концепцію ієрархії класів. Застосування ієрархії класів робить керованими великі потоки інформації. Наприклад, опис житлового будинку. Будинок - це частина загального класу, називаного будівлею. З іншого боку, будівля - це частина більш загального класу конструкція, що є частиною ще більш загального класу об'єктів, якому можна назвати створенням рук Людини. У кожному випадку породжений клас успадковує всі, пов'язані з батьком, якості і додає до них свої власні визначальні характеристики. Без використання ієрархії класів, для кожного об'єкта довелося б задати всі характеристики, які б вичерпно його визначали.
Дата добавления: 2014-01-04; Просмотров: 803; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |