Пошук по сайту


Лекція №3 з курсу: «Застосування засобів ооп в лінгвістичних задачах»

Лекція №3 з курсу: «Застосування засобів ооп в лінгвістичних задачах»


http://antibotan.com/ - Всеукраїнський студентський архів

Лекція №3

З курсу: «Застосування засобів ООП в лінгвістичних задачах»

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

3.1. I принцип ООП до вирішення задач – спосіб задання дії:

Дія в ООП ініціюється за допомогою передачі повідомлень

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

здійснення дії і супроводжується додатковою інформацією(аргументами),

яка необхідна для його виконання. Одержувач – це агент, якому

надсилається повідомлення, якщо він приймає повідомлення то на нього

автоматично покладається відповідальність за виконання дії. Як реакцію на

повідомлення одержувач запустить деякий метод, щоб виконати прийнятий

запит.

Приховування інформації – важливий принцип і в традиційних мовах

програмування.

Чим пересилання інформації відрізняється від традиційних методів:

- є цілком визначений одержувач – об’єкт, якому надіслане

повідомлення. При виклику процедури немає явно визначеного одежувача;

- інтерпритація повідомлення (а саме метод, який викликається)

залежить від одержувача і є різним для різних одержувачів.

Таким чином розходження між викликом процедури і пересилланням

повідомлення полягає в тому, що в останньому випадку існує визначений

одержувач і інтерпритація (вибір придатного методу) можуть бути різні для

різних одержувачів. Конкретний одержувач невідомий аж до виконання

програми і отже невідомо який метод буде викликаний.

3.2. ІІ принцип ООП.

Всі об’єкти є представниками чи єкземплярами класів. Метод що

активізується об’єктом, у відповідь на повідомлення визначається класом

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

використовують ті самі методи на однакові повідомлення.

Принцип, відповідно до якого знання про тільки загальну категорію

дозволяється використовувати до більш вузької категорії називаеться

спадкуванням.

Класи можуть бути організовані в ієрархічну структуру зі

спадкуванням властивостей. Дочірній клас(підклас) успадковує атрибути

батьківського класу розташованого вищче в ієрархічному дереві.

Матеріальні

Об’єктиТвариниНеживіОб’єктиЖиві

Об’єктиРослиниЛюдиБудинкиМашини

a)

МовиМовиПроектуванняМовипрограмуванняМовиСпілкуванняМовиПрограмуванняВисокогорівняМовиПрограмуванняНизькогорівняАнглійськаНімецкаУкраїнськасловаалфавітсловаалфавітсловаалфавітлексемиалфавіталфавітлексемиБудь яка мова L

визначається

граматикою G - L(G)

б)

Рис. 3.2. Ієрархія класів

Для пошуку методу, що підходить для обробки повідомлень

використовується таке правило:

- пошук методу, що викликається у відповід на визначене

повідомлення, починається з методів, що належить класу одержувачів.

Якщо придатний метод не знайдений, то пошук продовжується для

батьківського класу. Пошук продовжується вгору по ланцюжку класів поки

не буде знайдений потрібний метод, чи поки не буде вичерпана послівність

батьківських класів. У І випадку виконується відповідний метод, у ІІ –

видається повідомлення про помилку.

3.3. Характеристики ООП

1. Усе є об’єктом.

2. Обчислення здійснюється шляхом взаємодії (обміну даними між

об’єктами) при якому 1 об’єкт вимагає, щоб інший об’єкт виконав

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

Повідомлення – запит на виконання дії, доповнений набором

агрументів, які використовуються при виконанні дії.

3. Кожен об’єкт має незалежну пам’ять, що складається з інших

об’єктів.

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

об’єктів.

5. В класі задається поведінка (функціональність) об’єкта. Тим самим

всі об’єкти що є екземплярами одного класу можуть виконувати ті

самі дії.

6. Класи організовані в єдину ієрархічну структуру з спільним коренем.

Пам’ять і поведінка зв’язані з екземплярами визначеного класу

автоматично доступні будь-якому класу розташованому нижче в

ієрархічному дереві.

ООП пропонує новий підхід до розробки програмного забезпечення.

Фундаментальна концепція ООП парадигми полягає у передачі

повідомлення об’єктам. Таким чином ОО мова повинна мати властивості

(абстракції), інкапсуляції, спадкування і поліморфізму.

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

поведінки від його зовнішнього стану і поведінки.

Абстракція – здатність задавати типи визначені користувачем, щоб

доповнити вбудовані типи (Далі ми будемо розглядати тільки три основні

властивості ООП, окрім абстракції, вона присутня при визначені власних

типів користувачем).

Спадкування – здатність створювати нові типи використовуючи опис

існуючих типів.

Поліморфізм - здатність об’єктів бути відповідальними за

інтерпритацію виклика функції.

4. Визначення поняття клас1

1 Шупрута В.В. Delphi 2005. Учимся програмировать.

Мова Object Pascal - Delphi, підтримує концепцію об’єктно-

орієнованого програмування, та дає можливість визначати класи.

Клас (Class) – це складна структура, що включає опис не тільки

даних, але й процедур і функцій, які можуть бути виконані над

представниками класу (об’єктом).

Опис класу має наступну структуру:

Туре <Ім’я класа> = class (<Ім’я класа-батька>)

private

<Приватні описи>;

protected

<Захищений опис>;

public

<Загальнодоступні описи>;

published

<Опубликованные описания>;

end;

Нижче в лістінгу 4.1 наведений приклад оголошення класу (як і інші

елементи програми - константи, змінні, типи, - класи необхідно

оголошувати).

Лістінг 4.1 Приклад оголошення класу

// Фрагмент кода, демонстрирующий создание класса.

TPersonal = class

private

fname:string[30]; // Це властивість класу – ім’я співробітника.

fage:byte; // Це властивість класу – вік співробітника.

public

procedure showinfo; // Це метод класу - процедура,

// що забезпечує відображення інформації

// про співробітника.

end;

Дані класу, що описують характеристики об’єкта, називаються полями

(Field) або атрибутами (Attribute), а процедури и функції, що описує

поведінку об’єкта, - методами (Method).

В наведеному прикладі оголошений класс TPersonal. Ідентифікатор

TPersonal - це ім’я класу, fname і fage - імена полів, showinfo – ім’я

методу. Опис класу розміщається в програмі в розділі опису типів (type).

4.1. Що представляє собою об’єкт

Об’єкт – це сукупність властивостей методів і подій. Сукупність

означає, що об’єкт складається з властивостей методів і подій.

Властивості – це прості змінні, які впливають на стан об’єкта.

Наприклад ширина, висота - це властивість об’єкта.

Методи – це ті самі процедури і функції, це то шо об’єкт вміє роботи.

Наприклад, об’єкт може мати процедуру для виводу тексту на екран. Ця

процедура і є метод об’єкта.

Подія – це також процедури та функції, які викликаються коли

відбувається деяка подія. Наприклад, якщо змінилась будь яка

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

процедура для обробки реакції на цю подію.

Об’єктМетоди(процедури)ПодіїВластивості(змінні)

Рис. 4.1. Графічне представлення об’єкта

Після того як клас оголошений, в програмі можна створювати

(оголошувати) об’єти (Object) - екземпляри класу. Об’єкти як представники

класу оголошується в програмі в розділі опису змінних (var):

var

boss:TPersonal;

workersr array [1..100] of TPersonal;

В мові Object Pascal(Delphi) об’єкт - це динамічна структура. Така

структура містить не самі дані, а вказівник на дані об’єкта. Тому програміст

повинен потурбуватися про виділення пам’яті для цих даних.

Виділення пам’яті здійснюється за допомогою за допомогою

спеціального методу класа - конструктора, якому зазвичай

дають(присваивают) ім’я Create (Створити). Для того щоб підкреслити

особливу роль і поведінку конструктора, в описі класу замість слова

procedure використовують слово constructor. Наведений нижче в лістінгу

4.2 фрагмент коду оголошує клас з використанням конструктора.

Лістінг 4.2 Оголошення класу, в склады якого введений конструктор

// Фрагмент кода, що демонструє створення класу з конструктором.

TPersonal = class

private

fname: string[30]; // Це властивість класу – ім’я співробітника.

fage: byte; // Це властивість класу – вік співробітника.

public

constructor Create; // Конструктор - процедура створення

// нового об’єкту (екземпляра класу).

procedure showInfo; // Це метод класу - процедура,

// яка забезпечує відображення інформаціїі

// про співробітника.

end;

Виділення пам’яті для даних об’єкта відбувається шляхом присвоєння

значення результату застосування метода-конструктора до типу (класу)

об’єкта.

Наприклад, після виконання інструкції

Boss := Tpersonal1.Create;

виділяється необхідна пам’ять для даниих об’єкта boss.

Окрім виділеної пам’яті, конструктор, як правило, вирішує задачу

присвоєння полям об’єкта початкових значень, тим самим здійснює

ініціалізацію об’єкта. Нижче наведений приклад реалізації конструктора

для об’єкта TPersonal:

constructor TPerson.Create;

begin ;

fName := 'Новий співробітник';

fAge := 0;

end ;

Після оголошення і ініціалізації об’єкт можна використовувати,

наприклад встановити значення полів об’єкта. Доступ до поля об’єта

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

від одного точкою.

Якщо в програмі деякий об’єкт не використовується, то можна

звільнити пам’ять, що займається полями даного об’єкта. Для выконання

цієї дії використовується метод Free. Наприклад, для того щоб звільнити

пам’ять, що займається полями об’єкта boss, достатньо записати:

Boss.free;

Насправді пам’ять звільняється за допомогою іншого спеціального

методу, що називається деструктором. При його описі використовується

специальне слово destructor. Метод free викликає деструктор.

4.1.1 Ієрархія базових класів

Бібліотека візуальних компонентів (Visual Component Library, VCL)

містить велику кількість класів, призначених для швидкої розробки

застосувань. Бібліотека написана на Object Pascal і має безпосередній

зв’язок з інтегрованим середовищем розробки застосувань Delphi. В VCL

містяться невізуальні і візуальні компоненти, а також інші класи,

починаючи з абстрактного класу TObject. При цьому всі компоненти є

класами, але не всі класи є компонентами.

Всі класи VCL розміщенні на визначеному рівні ієрархії і утворюють

дерево (ієрархію) класів. Знання походження об’єкта робить значну

допомогу при його вивчені, так як нащадок спадковує всі елементи об’єкта-

батька. Так, якщо властивість caption належить класу TControl, то його

властивість буде і у його нащадків, наприклад, у класів TButton і

TCheckBox і у компонентів — кнопки Button і незалежного перемикача

CneckBox відповідно. Фрагмент ієрархії класів з важливими класами

представлений на рис. 2.1.

В основі великої кількості класів і компонентів, що використовується в

Delphi, є лише пять базових класів (рис. 2.1). Вони забезпечують

виконання основних функцій будь якого об’єкта — чи це стандартний

компонент VCL (Visual Component Library) або спеціалізований об’єкт,

що виконує деякі операції в застосуванні.

Рис. 2.1. Ієрархія базових класів VCL

Завдяки механізму спадкування властивостей і методів, нащадки

базових класів вміють ’’спілкуватися’’ один з одним; працють в середовищі

розробки, взаємодіючи з Палітрою компонентів і Інспектором об’єктів;

розпізнаються операційною системою як елементи керування і вікна.

В основі ієрархії класів лежить клас TObject. Він забезпечує виконання

важливих функцій "житедіяльності" будь якого об’єкта. Завдяки йому,

кожен клас спадковує механізми створення екземпляра об’єкта і його

видалення.

Зазвичай розробники не задумуються про те, як об’єкт буде створений

і що необхідно зробити для його корректного видалення. Компоненти VCL

створюють і звільняють автоматично ресурси що займають. Іноді

розробнику приходится створювати і видаляти об’єкти самостійно. Але

навіть в цьому випадку йому достатньо викликати відповідний конструктор

і деструктор:

var SomeList: TStrings;

SomeList := TStrings.Create;

SomeList.Free;

(За кажущейся простотой этих операций скрывается довольно сложная

реализация указанных процессов.) Весь код класу TObject написаний на

асемблері для забезпечення найбільшої ефективності операцій, які будуть

виконуватися в кажному його нащадку.

Окрім цього, клас TObject забезпечує створення і збереження

інформації про екземпляр об’єкта і обслуговування черг повідомлень.

Клас TPersistent (постійний, стійкий) походить безпосередньо від

класу TObject. Він забезпечує своїх нашадків можливісттю взаємодіяти з

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

передавати дані в потоки, а також забезпечує взаємодію об’єкта з

Інспектором об’єктів.

Клас TСomponent є важливим для всіх компонентів. Безпосередньо

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

реалізовані в класі TComponent, забезпечують взаємодію компонента з

середовищем розробки, головним чином з Палітрою компонентів і

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

починають працювати на формі проекта вже на этапі розробки.

Клас TControl походить від класу TComponent. Його основне

призначення — забезпечити функціонування визуальних компонентів.

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

ознаки елемента управління. Завдяки цьому, кожен візуальний компонент

вміє працювати з GUI (Graphic User Interface — графический интерфейс

пользователя ОС) і відображати себе на экрані.

Клас TWinControl розширює можливості розробників з створення

елементів управління. Він спадковується від класа TControl і забезпечує

створення віконних елементів управління.

На основі класу TWinControl створюється ще один додатковий клас —

TCustomControl. Він забезпечує компоненти які створені на його основі

можливостями з використанням канви — спеціального об’єкта,

призначеного для відображення графіки.

Клас TCustomControl є спільним предком для цілої групи класів, що

забезпечує створення різноманітних нестандартних типів віконих (що

отримують фокус) елементів управління Windows: редакторів, списків

тощо.

Для створення невіконних (ті що неотримують фокус) елементів

управління використовують клас TGraphicControl, який являютється

нащадком класу TControl.

В цілому ієрархія базових класів забезпечуєт повноцінну роботу

розрабників в Delphi, що дозволяє проектувати любі типи застосування.

Далі ми розглянемо основні властивості і методи базових класів,

виділяючи тільки ті, які можуть бути використані в реальній роботі. Частина

з них доступна в Інспекторі об’єктів, частина може бути використана в

програмному коді.2

2 Література: Гофман В. Э., Хомоненко А. Д. Delphi. Быстрый старт. — СПб.: БХВ-Петербург, 2003. —

288 с: ил.

Питання:

Література:

1. Архангельский А.Я. Программирование в Delphi. Учебник по

классическим версиям Delphi. 2006 г. - 1152 с.

2. Архангельский А.Я. Delphi 2006. Справочное пособие: язык

Delphi, классы, функции Win32 и .NET, 2006 г. - 1152 с.

3. Архангельский А.Я. Приемы программирования в Delphi на

основе VCL, 2006 г. - 944 с.

4. Архангельский А.Я. Программирование в Delphi для Windows.

Версии 2006, 2007, Turbo Delphi, 2007 г. - 1248 с.

5. Гофман В. Э., Хомоненко А. Д. Delphi. Быстрый старт. — СПб.:

БХВ-Петербург, 2003. — 288 с: ил.

6. Шупрута В.В. Delphi 2005. Учимся програмировать.


поділитися в соціальних мережах



Схожі:

Дослідження є реальні опціони та їх застосування у міжнародних інвестиційних...
Актуальність статті обумовлена незавершеністю теоретичного обґрунтування реальних опціонів, а також необхідністю їх практичного застосування...

Лекція №11 Тема лекції: Застосування транзисторів: класи підсилювачів
Ю. П. Колонтаєвський „Промислова електроніка та мікросхемотехніка: теорія І практикум” – 2003. ст. 71-72

Карта-повідомлення про побічну реакцію (ПР) та/або відсутність ефективності...
Порядку здійснення нагляду за побічними реакціями лікарських засобів, дозволених до медичного застосування

Реферат Пояснювальна записка до наукової роботи: 22 сторінки, 2 рисунки, 2 таблиці
Подано короткий порівняльний аналіз розглянутих засобів й методів діагностики, визначено позитивні якості й недоліки кожного. Наведено...

Студентка 4 курсу
Можливості застосування іппотерапії як засобу профілактики субдепресивних станів у підлітковому віці

Юрій Карпінський про проблеми сучасного стану адміністративно-територіального устрою України
Враховуючи, що абсолютна більшість показників адміністративно-територіального устрою базується на просторово локалізованих даних,...

Юрій Карпінський про проблеми сучасного стану адміністративно-територіального устрою України
Враховуючи, що абсолютна більшість показників адміністративно-територіального устрою базується на просторово локалізованих даних,...

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

Майстер клас
Бурхливий розвиток засобів інформатизації (комп’ютерів, комп’ютерних комунікацій, будь-яких електронних пристроїв), а отже, поява...

Воеводин В. В. Математические основы параллельных вычислений
Мета курсу вивчення: основних методів, алгоритмів, принципів побудови структур реалізації паралельних та розподілених обчислень,...



База даних захищена авторським правом © 2017
звернутися до адміністрації

l.lekciya.com.ua
Головна сторінка