WWW.REFERATCENTRAL.ORG.UA - Я ТУТ НАВЧАЮСЬ

... відкритий, безкоштовний архів рефератів, курсових, дипломних робіт

ГоловнаІнформатика, Компютерні науки → Основи об’єктно-орієнтованих технологій - Реферат

Основи об’єктно-орієнтованих технологій - Реферат

запрограмовані відповідні дії. Цей код, разом з прихованими даними об'єкту, складає його реалізацію.
Це просто зрозуміти по аналогії з процедурним програмуванням. Для кожного типу визначені функції, які реалізують усі можливі дії із змінними цього типу. В разі потреби виконати певну дію викликається відповідна функція. Іншими словами, в термінах ООП: об'єкту надсилається запит (повідомлення), а об'єкт вирішує, як його обробити (виконує код).
3. Інкапсуляція
Інкапсуляція - це механізм, який об'єднує дані і методи, що маніпулюють цими даними, і захищає і те, і інше від зовнішнього втручання або невірного використання. Коли методи і дані об'єднуються в такий спосіб, утворюється об'єкт.
Іншими словами, інкапсуляція - це "приховування інформації", застосоване до об'єктів. Подібно до того, як в процедурному програмуванні глобальна функція не має доступу до локальних змінних іншої функції, так і дані всередині об'єкту приховані від інших частин програми. Для маніпулювання даними об'єкту інші частини програми повинні попросити об'єкт викликати його власні інкапсульовані методи, які і повертають інформацію про стан об'єкту (або дані) модулю, що послав запит. Реалізація класу об'єкту може бути змінена непомітно для решти програми, якщо незмінним залишається інтерфейс класу.
4. Взаємодія об'єктів.
Об'єкти в програмі не існують самі по собі. Програмування в термінах об'єктів має зміст лише тоді, коли можливо організувати їх взаємодію. Одним із базових принципів ООП є наступний: об'єкти можуть взаємодіяти один з одним, надсилаючи повідомлення з проханням виконати деякий належний метод або виконуючи метод у відповідь на запит іншого об'єкту. Взаємодіючи, об'єкти утворюють програму.
Повідомлення - це практично те саме, що і виклик функції у процедурному програмуванні. Об'єкт не може прямо змінити стан іншого об'єкту, він може тільки попросити його виконати деякі дії, надсилаючи повідомлення.
Будь-яке повідомлення складається з трьох частин:
1) ім'я об'єкту, якому воно адресоване;
2) ім'я методу, який повинен виконати об'єкт-адресат;
3) параметри, необхідні для виконання метода.
Таким чином, звертання до властивості чи метода об'єкту відбувається з використанням стандартного для об'єктно-орієнтованих мов синтаксису - крапкової нотації. Різні об'єкти можуть мати властивості і методи з однаковими назвами. Саме тому, щоб вказати, до методу якого саме об'єкта відбувається звертання, перед іменем методу вказується ім'я об'єкту, відокремлене крапкою.
Приклад (виклик методу рух об'єкту Тролейбус з параметром швидкість): Тролейбус.рух (швидкість=30 км/год).
5. Спадкування
Абстрактний тип даних, який описує деякий об'єкт, називатимемо надалі класом. Після того, як клас створений і відтестований, він може бути використаний неодноразово. Найпростішим способом повторно використати клас є створення об'єкту (екземпляру) даного класу. Але і сам клас може стати цеглиною при побудові нового класу. Останній може бути створений з довільної кількості об'єктів інших класів, у будь-якому їх поєднанні. Цей процес називається композицією (або агрегацією).
Інший спосіб утворення нового класу - це механізм спадкування.
Спадкування - це процес, шляхом якого деякий клас може успадковувати властивості та методи деякого існуючого класу, додаючи до них деякі особисті риси.
Спадкування використовується у випадку, коли треба створити клас з функціональністю, схожою на функціональність вже існуючого класу. При успадкуванні утворюється клон існуючого (батьківського, базового) класу, який є коренем ієрархії успадкування, і цей клон (нащадок) відповідним чином модифікується. Ці два класи можуть мати спільні характеристики і поведінку, але один з них (нащадок) може мати більше властивостей і обробляти більше повідомлень (або обробляти їх інакше).
У одного батьківського класу може бути декілька нащадків, при цьому батьківський (базовий) клас містить всі властивості і методи, спільні для його нащадків.
Приклад.
Форма (базовий клас)
Властивості:
колір,
розмір,
розташування,

Методи:
обрахувати площу,
намалювати,
знищити,
зсунути,
… Трикутник (нащадок)
Властивості:…
Методи:
віддзеркалити (додається),
обрахувати площу (змінюється),

Квадрат (нащадок)
Властивості:…
Методи:
обрахувати площу (змінюється),

Круг (нащадок)
Властивості:…
Методи:
обрахувати площу (змінюється),

Клас-нащадок успадковує інтерфейс базового класу. Це означає, що всі повідомлення, які може обробляти базовий клас, може обробляти і клас-нащадок. Оскільки клас розпізнається за повідомленнями, які він може обробляти, то клас-нащадок має той самий тип, що і базовий клас. "Круг - це форма". Це називається еквівалентністю типів через успадкування.
6. Поліморфізм
Поліморфізм - це властивість різних об'єктів по-різному відповідати на однакові повідомлення, тобто одне й те саме ім'я може використовуватись для методів різних класів. В попередньому прикладі метод "обрахувати площу" міститься в різних нащадках: Трикутник, Квадрат, Круг і в самому базовому класі Форма, але в кожному з них діє по-різному. Надсилаючи одне й те саме повідомлення "обрахувати площу" об'єктам всіх цих різних класів, одержимо різні (правильні для відповідного класу) результати.
Основною концепцією поліморфізму є ідея про те, що один інтерфейс дозволяє реалізувати багато методів.
При цьому вибір конкретного методу, залежно від ситуації, здійснює компілятор. Механізм цього вибору такий: під час виклику певного методу класу спочатку шукається такий метод у самому класі. Якщо його знайдено - він виконується, якщо ж ні - відбувається звертання до класу, який є базовим (батьківським) для заданого класу і пошук методу відбувається в ньому. Цей процес повторюється до тих пір, поки не знайдено корінь (верхній клас) ієрархії успадкування.
Те, що ви щойно прочитали про об'єктно-орієнтовані технології, є лише дуже стислим оглядом основних відомостей. Більш детальне знайомство з цією концепцією програмування краще здійснювати не абстрактно, а в межах вибраної вами об'єктно-орієнтованої мови програмування.
ЛІТЕРАТУРА
1. Н. Вирт. Систематическое программирование. - М.: Мир, 1977. - 183 с.
2. Ален И. Голуб. С и С++. Правила программирования. - М.: БИНОМ, 1996. - 272 с.
3. У. Дал, Э. Дейкстра, К. Хоор. Структурное программирование. - М.: Мир, 1973. - 247 с.
4. Э. Дейкстра. Дисциплина программирования. - М.: Мир, 1978. - 275 с.
5. Д. Ван Тассел. Стиль, разработка, эффективность, отладка и испытание программ. - М.: Мир, 1985. - 332 с.
6. М. Зелковиц, А. Шоу, Дж. Гэннон. Принципы разработки программного обеспечения. - М.: Мир, 1982. - 368 с.
7. Г. С. Иванова. Основы программирования: Учебник для вузов. - М.: Изд-во МГТУ им. Н.Э. Баумана, 2002. - 416 с.
8. Г. С. Иванова. Технология программирования: Учебник для вузов. - М.: Изд-во МГТУ им. Н.Э. Баумана, 2002. - 320 с.
9. Э. Йодан. Структурное проектирование и конструирование програм. - М.: Мир, 1979. - 415 с.
10. Б. Керниган, Р. Пайк. Практика программирования. - СПб.: Невский диалект, 2001. - 381 с.

 
 

Цікаве

Загрузка...