Студопедия
Новини освіти і науки:
МАРК РЕГНЕРУС ДОСЛІДЖЕННЯ: Наскільки відрізняються діти, які виросли в одностатевих союзах


РЕЗОЛЮЦІЯ: Громадського обговорення навчальної програми статевого виховання


ЧОМУ ФОНД ОЛЕНИ ПІНЧУК І МОЗ УКРАЇНИ ПРОПАГУЮТЬ "СЕКСУАЛЬНІ УРОКИ"


ЕКЗИСТЕНЦІЙНО-ПСИХОЛОГІЧНІ ОСНОВИ ПОРУШЕННЯ СТАТЕВОЇ ІДЕНТИЧНОСТІ ПІДЛІТКІВ


Батьківський, громадянський рух в Україні закликає МОН зупинити тотальну сексуалізацію дітей і підлітків


Відкрите звернення Міністру освіти й науки України - Гриневич Лілії Михайлівні


Представництво українського жіноцтва в ООН: низький рівень культури спілкування в соціальних мережах


Гендерна антидискримінаційна експертиза може зробити нас моральними рабами


ЛІВИЙ МАРКСИЗМ У НОВИХ ПІДРУЧНИКАХ ДЛЯ ШКОЛЯРІВ


ВІДКРИТА ЗАЯВА на підтримку позиції Ганни Турчинової та права кожної людини на свободу думки, світогляду та вираження поглядів



Об’єктно-орієнтоване програмування

Лекція №2

НЕ 2.1 Основні концепції і базові поняття об’єктно-орієнтованогопрограмування. Об’єктно-орієнтоване програмування (скорочено ООП) - це зовсім новий підхід до побудови складних і не дуже складних програм і систем. До появи ООП домінувало процедурне програмування. Тоді основою програм були процедури та функції, тобто дії. Програміст визначав, які дії, або які функції потрібні для розв’язку поставленої задачі, реалізовував ці функції та з’єднував їх в одну програму. Програма зазвичай мала достатньо чіткий алгоритм роботи - чітко визначену послідовність операцій.

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

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

Об’єкт, властивості, методи, події. Спочатку необхідно визначитись із поняттям об’єкта. Перше визначення можна дати таке: об’єкт - це сукупність даних і засобів роботи з ними. Дані можна розглядати як записи, це є характеристика об’єкта. Зрозуміло, що і користувач, і інші об’єкти в програмі повинні мати можливість читати дані саме цього об’єкта, проводити їх опрацювання та записувати (передавати) в об’єкт нові дані.

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

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

 

Рис. 2.1 - Схема звертання до даних через методи об’єкта

Визначення: процедури і функції, що забезпечують читання, опрацювання і запис даних об’єкта, носять назву методів. Сукупність даних і методів носить назву властивості. Властивості об’єктів використовуються буквально на кожному кроці програмування в ООП. Властивості можна встановлювати на стадії проектування, їх можна змінювати в процесі виконання програми. Приклад: властивість візуалізації обєкта Visual. Притаманна всім елементам графічного інтерфейсу (панелі, кнопки, вікна редагування, вікна для роботи з графікою). Об’єкт може бути видимим в вікні форми (Visual=True) або може бути невидимим (Visual=False). При виконанні програми в будь-який момент можна поміняти значення властивості Visual.

Таким чином, поняття об’єкта вже можна записати так: об’єкт є сукупністю властивостей і методів. Але таке визначення не можна рахувати вичерпним, тому що об’єкт може взаємодіяти з іншими об’єктами. Взаємодія об’єктів здійснюється у вигляді обміну повідомленнями, що з’являються внаслідок різноманітних подій. Події виникають в основному в результаті дій користувача - рух курсора мишки, натискання кнопок або клавіш клавіатури. Але події можуть виникати і внаслідок роботи інших об’єктів. Для кожного об’єкта визначена множина подій, на які він може реагувати. Наприклад: об’єкт - редактор текста Edit. Цей об’єкт може реагувати на такі події : OnChange - подія настає при зміні об’єкта користувачем (наприклад, зміна розмірів вікна редактора текста); OnClick - натискання лівої кнопки мишки над об’єктом; OnMouseMove - подія настає при русі курсора мишки над редакторм, і т.і. Для конкретного екземпляра об’єкта необхідно визначити в разі потреби так званий обробник подій - реакцію даного об’єкта на таку подію. Власне, саме написання кодів обробників подій і є, по суті, процесом програмування графічного інтерфейса в ООП.

Тепер вже можна дати остаточне і вичерпне визначення поняття об’єкт: об’єктом називається сукупність властивостей і методів, а також подій, на які він може реагувати. Умовно це зображено на рис. 2.2.

 

 

Рис. 2.2 - Схема організації об’єкта

 

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

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

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

НЕ 2.2 Основи візуального проектування інтерфейсу. Скільки існує програмування, стільки ж і виникають кризові ситуації, з яких воно врешті решт з успіхом виходить. Ще донедавна однією такою кризою була розробка графічного інтерфейсу користувача. Програмування вручну всіх вже звичних вікон, кнопок, меню, додавання до програми звука та зображень вимагало все більше і більше часу професійного програміста. По деяких оцінках створення такого сервісу займало 80-90% часу написння програми. При цьому через рік-два після створення програми змінювався загальноприйнятий стиль графічного інтерфейса (змінювалась мода), і все було потрібно починати спочатку.

Вихід із цієї кризи було знайдено завдяки двом підходам. Перший підхід - стандартизація багатьох функцій інтерфейса, при цьому з’явилась можливість використовувати бібіліотеки, наприклад, Windows. В результаті при зміні графічного інтерфейсу додатки змогли автоматично пристосовуватись до нової системи без перепрограмування. На цьому шляху створились умови для технології повторного використнання кодів. Один раз створені форми, компоненти, функції заносяться в потужні бібліотеки, доступ до яких можливий для всіх програмістів. При цьому відразу ж була забезпечена сумісність програмного забезпечення, розробленого на різних мовах.

Другим революційним кроком стало поява візуального програмування графічного інтерфейсу. Першим це став Visual Basic, потім з’явились Delphi та CВuilder фірми Borland. Тепер існує можливість за хвилини зробити те, на що раніше потрібно було витратити місяці напруженої праці. В Delphi це виглядає так: середовище пропонує форми (простіше кажучи - вікна), на яких розташовуються компоненти. На форму за допомогою мишки переносяться піктограми компонентів, що існують в бібліотеках Delphi. Можна дуже просто змінювати розміри, колір і інші властивості. об’єктів. При цьому Ви весь час бачите в процесі проектування майбутній результат. Але все ж таки головна перевага візуального програмування полягає не в цьому.

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

Попередні відомості про класи та спадковість. Компоненти бібліотеки Delphi по типу об’єднуються в класи. В класах задаються властивості об’єкта, його методи та події, на які він може реагувати. Для чого потрібні класи: уявіть собі, що при розробці нового компонента, наприклад, кнопки, програмісту довелось би розробляти все з самого початку, тобто рисувати зображення кнопки, описувати всі її властивості, місце розташування, розміри, колір, підписи і рисунок на її поверхні, шрифти підпису і т.д., писати, як ця кнопка повинна реагувати на таку подію, як натискання мишки - такий об’єм роботи, певне, примусив би програміста відмовитись від такого елемента інтерфейсу. В дійсності вся справа є набагато простішою завдяки такій властивості класів, як спадковість. Новий клас може успадкувати всі методи, властивості, події від свого батьківського класу. Батьківський клас можна взяти за основу і тільки додати або відмінити деякі властивості та методи.

НЕ 2.3 Мова об’єктно-орієнтованого програмування Object Pascal. Структура файла головної програми. Структура модуля.

2.3.1 Синтаксис мови. Основні синтаксичні правила запису програми на мові Object Pascal наступні:

· Всі типи, константи, змінні, функції, процедури повинні бути описані до їх першого використання.

· Великі і малі літери ідентичні, не розрізняються. При заданні ідентифікаторів можливо використовувати латинські літери, цифри, символ підкреслювання. Ідентифікатор не може починатись з цифри. Довжина ідентифікатора не обмеджена, але сприймаються лише перші 255 символів.

· При посиланнях на ідентичні об’єкти, що описані в різних місцях програми, використовується нотація з крапкою, в якій послідовно перераховуються через крапку ідентифікатори об’єктів. Наприклад: Form2.Label1.Caption - заголовок мітки 1 на формі 2.

· Кожне речення (оператор) закінчується символом крапка з комою.

· Коментарі в програмі записуються в фігурних дужках.

· Операторні дужки begin…end відокремлюють складений оператор. Всі команди, що розміщені в операторних дужках, сприймаються синтаксично як один оператор.

· Програма або окремий модуль закінчуються оператором end.

 

НЕ 2.4 Основні файли проектів. Коли проектується програма (додаток), Delphi створює наступні файли:

· Файл проекта (.dpr). Це текстовий файл для зберігання інформації про форми та модулі. В ньому записані оператори ініціалізації та запуска програми на виконання.

· Файл модуля (.pas). Кожній формі відповідає свій файл модуля. Використовується для запису кодів.

· Файл форми (.dfm). Це двійковий (бінарний) файл, вміщує інформацію про форму. Кожній формі відповідає свій файл модуля.

· Файл параметрів проекта (.dfo)

· Файл інформації о пакетах (.drf)

· Файл ресурсів (.res)

· Файли резервних копій (.~dp, .~.df, .~pa). Файли резервних копій для проекту, форми та модуля. Якщо програміст безнадійно зіпсував щось в проекті, можна поміняти розширення цих файлів і повернутись до попереднього варіанта.

Наступна група файлів створюється компілятором*:

· Файл, що виконується (.exe). Автономний файл виконання, для якого більше нічого не потрібно.

· Об’єктний файл модуля (.dcu). Відкомпільований файл модуля (.pas).

І, наостаннє, інші файли Windows, які можуть бути використані в Delphi:

· Файли довідки (.hlp).

· Файли забражень або графічні файли (.wmf, .bmp, .ico).

Основні проектні операції:

· Створення та збереження нового проекта.

· Розташування на формі необхідних компонентів.

· Задання властивостей цих компонентів.

· Написання кодів обробників подій.

· Тестування і відладка програми.

 

 

Контрольні запитання

1. Що таке об’єкт в ООП?

2. Чи може об’єкт взаємодіяти з іншими об’єктами?

3. Дайте визначення властивості об’єкта.

4. Сформулюйте нові терміни:

· інкапсуляція або принцип приховування даних

· динамічна структура

· конструктор об’єктів

· деструктор об’єктів

· повторне використання кодів

5. Які розширення мають файли проекту, форми, модуля, виконуваний файл?

6. Як можна змінювати властивості об’єктів?


* Нагадємо відомості про відмінність компіляторів і інтерпретаторів. Комп’ютер може виконувати програми тільки на машинній мові. Кожна команда при цьому має вигляд послідовності нулів і одиниць. Писати програми машинною мовою досить незручно та ненадійно. Тому програми, що написані на інструментальних мовах високого рівня , спеціальною програмою, що називається транслятором, перекладаються на машинний код. Транслятори бувають двох типів: інтерпретатори та компілятори. Інтерпретатор читає один рядок програми, аналізує його і відразу ж виконує, після чого переходить на наступний рядок програми. Компілятор спочатку читає, аналізує та перекладає на машинний код всю програму, і тільки після завершення всієї трансляції ця програма виконується. Інструментальні мови поділяються на мови низького рівня (близькі до машинної мови, асемблери) та мови високого рівня (близькі до мови людини, C++, Pascal, Basic).


Читайте також:

  1. Безпосереднє програмування відеопам'яті
  2. Виконання програми - реалізація мови програмування
  3. Геометрична інтерпретація задачі лінійного програмування
  4. Геометрична інтерпретація задачі нелінійного програмування
  5. Геометрична інтерпретація розв’язків цілочислових задач лінійного програмування на площині
  6. Графічний метод розв’язування задач лінійного програмування
  7. Державне регулювання суспільного відтворення та його форми. Планування та програмування
  8. Динамічне програмування.
  9. Динамічного програмування
  10. Економічна і математична постановка задачі нелінійного програмування
  11. Економічна і математична постановка задачі нелінійного програмування
  12. Економічна і математична постановка цілочислової задачі лінійного програмування




Переглядів: 2542

<== попередня сторінка | наступна сторінка ==>
КОНТРОЛЕРИ | На прикладі інтегрованого середовища Delphi

Не знайшли потрібну інформацію? Скористайтесь пошуком google:

  

© studopedia.com.ua При використанні або копіюванні матеріалів пряме посилання на сайт обов'язкове.


Генерація сторінки за: 0.004 сек.