Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Об’єктно-орієнтоване програмування(ООП).doc
Скачиваний:
5
Добавлен:
18.09.2019
Размер:
128 Кб
Скачать
        1. Поняття класу в об’єктно-орієнтованому програмуванні.

Класом називається особлива структура, яка може мати в своєму складі поля методи і властивості. такий тип називається об’єктним типом.

Type TMyObject =class(TObject)

MyField: integer;

Properties….

End;

Для використання довільного типу даних у програмі потрібно оголосити змінну цього типу. Змінна об’єктного типу має назву екземпляром клласу або об’єктом.

Var AmyObject: TMyObject;

Це вказівник на візуальний клас – це опис, а об’єкт те що створюється у відповідності з цим описом. Поля об’єкта аналогічні полям запису. Це дані універсальні для кожного створюваного в програмі екземпляру класу. На відміну від полів методи у всіх об’єктів одного класу спільні.

        1. Методи і властивості в об’єктно-орієнтованому програмуванні

Методи це процедури і функції описані в середині класу і призначені для операцій над його полями. До складу класу входить вказівник на спеціальну таблицю де міститься всі інфа необхідна для виклику методів. Від звичайних процедур і функцій методи відрізняються тим, що їм при виклику у передається вказівник на той об’єкт, який їх викликав.

В середовищі методу вказівник на викликавший його об’єкт є доступним під заразервовоним імям Self.

Властивість – це поле доступне для читання і запису не на пряму, а через відповідні методи.

---- класи можна описувати або в секції interface модуля або або на верхньому рівні вкладеноості в секції реалізації implementation. Не можна описувати класи в середині процедур та інших блоків коду. Дозоляється попереджуючий опис класів.

3.Створення і видалення об’єктів в об’єктно-орієнтованому програмуванні.

Спеціальний метод який ініціалізує об’єкт називається конструктор. Для видалення створеного об’єкту використовується інший метод – деструктор.

AMyObject = TMyObject.create;

{дії з обєктами}

TMyObject.Destroy

AMyObject.Destroy вказівник який містить адресу об’єкта.

Конструкторів в класі може бути декілька.

Для видалення екземпляра об’єкта використовується метод free, який

А) перевіряє вказівник

Б) далі викликає Decm Destroy AMyObject.free

Конструктор це функція яка повертає створений і проініціалізований об’єкт. Якщо конструктор створює новий екземпляр, то це можливо лише тоді, якщо перед його імям вказано імя класу. Якщо вказати імя вже існуючого об’єкта то конструктор лише виконає код який міститься в тілі конструктора. Для того щоб правильно проініціалізувати поля в об’єкті що створюється і які відносяться до попереднього класу потрібно відразу ж при вході у конструктор вказати конструктор попереднього класу за допомогою зарезервованого слова Inheretid.

Constructor TMyObject.Create

Begin

Inheretid create

End;

При візуальному проектуванні для всіх складовий форм клас Tform, конструктори і деструктори викликаються автоматично. Створює та видаляє форми глобальний об’єкт з імям Application, у формі проекту *.DPR. У файлі проекту можна побачити виклики методом який призначений для створення форм Application.Createform.

Об’єкти які створюються динамічно (під час виконання програм) вимагають виклик конструктора і методу Free.

4.Інкапсуляція як один з основних принципів об’єктно-орієнтованого програмування.

Є 3 принципи ООП

  1. Інкапсуляція

  2. Наслідування

  3. Поліморфізм

Інкапсуляція – для забезпечення надійності доступу до полів об’єкта. повинен виконуватись за допомогою виклику відповідних методів.

В делфі користувач об’єкта може бути відгороджений від полів за допомогою властивостей. Властивість визначається трьома елементами полями і двома методами, які здійснюють його читання і запис.

Type

TMyObject=class(TObject)

Function getaproperty:TsomeType методи

Procedure setaproperty(AnewValue:TSomeType)

Property AProperty:TsomeType read GetAProperty <=властивість

Write SetAProperty.

Доступ до означень властивості AProperty здійснюється через виклики методів GetAProperty і SetAProperty. До цих методів в явному вигляді можна не звертатись AnObject.Aproperty:=Value;

Ключове слово Default використовується для присвоювання значень по замовчуванню.

Property visisble:Boolean read FVisible

Write SetVisible

Default True(об’єкт буде видимий, False невидимий)

Інкапсуляція означає сполучення структур даних із методами їх обробки в абстрактних типах даних - класах об'єктів.

Інкапсуляція – це об’єднання 3-х різних за природою сутностей: полів, методів та властивостей в один об’єкт. З іншої сторони, це процес розділення вмісту та поведінки об’єкта. Інкапсуляція служить для того, щоби ізолювати дані об’єкта від його поведінки.

Інкапсуляція — одна з трьох парадигм об'єктно-орієнтованого програмування і дизайну. Також відома як приховування даних. Зміст інкапсуляції полягає у приховуванні від зовнішнього користувача деталей реалізації об'єкта, замість цього надаючи інтерфейс взаємодії. Слугує передусім для того, щоб не давати можливості клієнту змінювати внутрішній стан об'єкта без відома останнього, залишаючи лише можливість впливу через «офіційні» методи роботи з полями та власне методи. Завдяки використанню інкапсуляції, досягаються щонайменше дві переваги:

  • Можливість зміни внутрішнього представлення даних без необхідності зміни програмного коду клієнта

  • Зменшення ймовірності помилок через приведення екземпляра до непередбаченого стану.

Пирклад: Водій може не знати всю будову автомобіля, але при цьому управляє нею так, як було задумано.