Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
KPZ_modul2.docx
Скачиваний:
6
Добавлен:
12.09.2019
Размер:
83.24 Кб
Скачать

Приховування інформації (інкапсуляція)

Приховування деталей про роботу класів від об'єктів, що їх використовують або надсилають їм повідомлення. Так, наприклад, клас Собака має метод гавкати(). Реалізація цього методу описує як саме повинно відбуватись гавкання (приміром, спочатку вдихнути() а потім видихнути() на обраній частоті та гучності). Петро, хазяїн пса Сірка, не повинен знати як він гавкає. Інкапсуляція досягається шляхом вказування, які класи можуть звертатися до членів об'єкта. Як наслідок, кожен об'єкт представляє кожному іншому класу певний інтерфейс — члени, доступні іншим класам. Інкапсуляція потрібна для того, аби запобігти використанню користувачами інтерфейсу тих частин реалізації, які, швидше за все, будуть змінюватись. Це дозволить полегшити внесення змін, тобто, без потреби змінювати і користувачів інтерфейсу. Наприклад, інтерфейс може гарантувати, що щенята можуть додаватись лише до об'єктів класу Собака кодом самого класу. Часто, члени класу позначаються як публічні(англ. public), захищені (англ. protected) та приватні (англ. private), визначаючи, чи доступні вони всім класам, підкласам, або лише до класу в якому їх визначено. Деякі мови програмування йдуть ще далі: Java використовує ключове слово private для обмеження доступу, що буде дозволений лише з методів того самого класу, protected — лише з методів того самого класу і його нащадків та з класів із того ж самого пакету, C# та VB.NET відкривають деякі члени лише для класів із тієї ж збірки шляхом використання ключового слова internal (C#) або Friend (VB.NET), а Eiffel дозволяє вказувати які класи мають доступ до будь-яких членів.

Абстрагування 

Спрощення складної дійсності шляхом моделювання класів, що відповідають проблемі, та використання найприйнятнішого рівня деталізації окремих аспектів проблеми. Наприклад Собака Сірко більшу частину часу може розглядатись як Собака, а коли потрібно отримати доступ до інформації специфічної для собак породи коллі — якКоллі і як Тварина (можливо, батьківський клас Собака) при підрахунку тварин Петра.

Поліморфізм 

Поліморфізм означає залежність поведінки від класу, в якому ця поведінка викликається, тобто, два або більше класів можуть реагувати по різному на однакові повідомлення. Наприклад, якщо Собака отримує команду голос(), то у відповідь можна отримати Гав; якщо Свиня отримує команду голос (), то у відповідь можна отримати Рох-рох. На практиці - це реалізовується шляхом реалізації ряду підпрограм (функцій, процедур, методи тощо) з однаковими іменами, але з різними параметрами. В залежності від того, що передається і вибирається відповідна підпрограма.

Прототипно-орієнтоване програмування

Не всі з перелічених вище концепцій присутні в усіх об'єктно-орієнтованих мовах програмування. Зокрема, в прототипно-орієнтованому програмуванні не використовуютьсякласи. Як наслідок, зовсім інша, але аналогічна термінологія використовується для визначення об'єкта та екземпляра в цих мовах.

11. Структуровані БД використовують структури даних, тобто структурований опис типу фактів за допомогою схеми даних, більш відомої як модель даних. Модель даних описує об'єкти та взаємовідносини між ними. Існує декілька моделей (чи типів) баз даних, основні: плоска, ієрархічна, мережна та реляційна. Приблизно з 2000 року більше половини БД використовують реляційну модель. Структура типів даних Будь-яка константа, змінна, значення функції або виразу характеризується своїм типом. Тип цих об’єктів визначає множину допустимих значень, які може мати об’єкт, а також множину допустимих операцій над об’єктами. Крім того тип визначає і формат внутрішнього представлення значення об’єкту. Класифікація типів даних  Тип цих об’єктів визначає множину допустимих значень, які може мати об’єкт, а також множину допустимих операцій над об’єктами. Крім того тип визначає і формат внутрішнього представлення значення об’єкту. Прості типи даних До простих відносять реальні та порядкові типи даних. Порядкові типи характеризуються кінцевим числом можливих значень. Ці значення можна упорядковувати (звідки і назва) будь-яким чином, так, що кожному з них можна зіставити деяке ціле число – порядковий номер значення. Реальні типи також мають кінцеве число значень, але їх кількість дуже велика, тому кожному з них зіставити ціле число просто неможливо. Порядкові типи До порядкових типів відносяться: цілі, логічні, символьні, переліку та тип-діапазон.  До будь-якого з них можна використати функції: ORD(Х) – порядковий номер значення; PRED(X) – порядковий номер попереднього значення; SUCE(X) – порядковий номер наступного значення; ORD(PRED(X))=ORD(X)-1; ORD(SUCE(X))=ORD(X)+1. Цілі типи 12. Транслятор - це програма або технічний засіб, що виконує перетворення програми, представленої на одній з мов програмування, в програму на іншій мові, в певному сенсі рівносильну першої. Інтерпретатор аналізує і тут же виконує програму покомандного, у міру надходження її вихідного коду на вхід інтерпретатора. Алгоритм роботи простого інтерпретатора: 1) прочитати інструкцію; 2) проаналізувати інструкцію і визначити відповідні дії; 3) виконати відповідні дії; 4) якщо не досягнуто умова завершення програми, прочитати наступну інструкцію і перейти до пункту  Твердження «Мовний процесор, який підрядник аналізує вихідну програму і одночасно виконує запропоновані дії, а не формує на машинній мові скомпільовану програму, яка виконується згодом» справедливо для інтерпретатора Режим інтерпретації можна використовувати при налагодженні програм на мові високого рівня. Інтерпретація в розробці програм - процес безпосереднього покомандного виконання програми без попередньої компіляції, «на льоту». У більшості випадків интерпретируемая програма працює набагато повільніше, ніж скомпільована програма, але не вимагає витрат на компіляцію, що в разі невеликих програм може підвищувати загальну продуктивність. Інтерпретація пов'язана з отриманням змінними значень в процесі роботи програми. Інтерпретація та компіляція не дозволяють змінити семантику (сенс) мови програмування. Зазвичай при описі семантики в рамках операційного підходу виконання конструкцій мови програмування трактується за допомогою деякої уявної (абстрактної) ЕОМ. Інтерпретація та компіляція не дозволяють змінити синтаксис мови - набір правил побудови фраз алгоритмічної мови, що дозволяє визначити осмислені пропозиції в цій мові.

13. Об'є́ктно-орієнто́ване програмува́ння (ООП) — одна з парадигм програмування, яка розглядає програму як множину «об'єктів», що взаємодіють між собою. В ній використано декілька технологій від попередніх парадигм, зокрема успадкування, модульність, поліморфізм та інкапсуляцію. Попри те, що ця парадигма з'явилась в 1960-тих роках, вона не мала широкого застосування до 1990-тих. Сьогодні багато мов програмування (зокрема, Java, C#, C++, Python, PHP, Ruby та Objective-C, ActionScript 3) підтримують ООП. Об'єктно-орієнтоване програмування сягає своїм корінням до створення мови програмування Симула в 1960-тих роках, одночасно з посиленням дискусій про кризу програмного забезпечення. Разом із тим, як ускладнювалось апаратне та програмне забезпечення, було дуже важко зберегти якість програм. Об'єктно-орієнтоване програмування частково розв'язує цю проблему шляхом наголошення на модульності програми[1].

На відміну від традиційних поглядів, коли програму розглядали як набір підпрограм, або як перелік інструкцій комп'ютеру, ООП програми можна вважати сукупністю об'єктів. Відповідно до парадигми об'єктно-орієнтованого програмування, кожний об'єкт здатний отримувати повідомлення, обробляти дані, та надсилати повідомлення іншим об'єктам. Кожен об'єкт — своєрідний незалежний автомат з окремим призначенням та відповідальністю[2].

Клас (від лат. classis) — сукупність, розряд, група предметів, явищ, що мають спільні ознаки, однакові якості[1]. Предмети (явища), що утворюють К., називаються його елементами.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]