русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Основні концепції об’єктно-орієнтованого програмування, поняття, терміни.


Дата добавления: 2015-07-09; просмотров: 1473; Нарушение авторских прав


У програмуванні широко використовують фундаментальний принцип керування складними системами – devide et impera, згідно з яким при проектуванні складної програмної системи здійснюють алгоритмічну декомпозицію задачі. Метою декомпозиції є подання системи у вигляді сукупності взаємодіючих систем, кожну з яких можна налагоджувати незалежно одна від одної. Ідея розділення програм на самостійні частини, які реалізовують підпрограми, знайшла відображення в структурному підході до створення програмних продуктів. Дальший розвиток стректурного підходу привів до модульного програмування, яке передбачає декомпозицію задачі у вигляді ієрархії взаємодіючих модулів (програм). Розвитком ідеї модульного програмування є моделювання об’єктів предметної області за допомогою класів (об’єктних типів). Ієрархічна класифікація об’єктів і наслідування властивостей стали початковими точками у розвитку концепції об’єктно-орієнтованого програмування. Основним поняттям ООП є клас (відповідає визначеному типовому об’єктові предметної області; це визначена програмна одиниця, яка має 3 важливі властивості: інкапсуляція, наслідування, поліморфізм). Інкапсуляція – це об’єднання і локалізаціяу рамках класу,як єдиного цілого, даних і підпрограм, які опрацьовують дані. Наслідування –властивість класу породжувати своїх нащадків – класи, які успадковують властивості батьківського класу. Поліморфізм – властивість класів родичів по-різному створювати однотипні дії.

 

2.Зміст і призначення поняття клас. Що таке інкапсуляція?

Клас – це визначена програмна структура, яка має 3 важливі властивості: інкапсуляція, наслідування, поліморфізм.Ці властивості даюсь змогу адекватно відображати структуру предметної області.Інкапсуляція –(«вміст в оболонці») – це об’єднання і локалізація у рамках класу, як єдиного цілого, даних і підпрограм, які опрацьовують ці дані. Клас –це деякий абстрактний тим, який створюється на основі наявних типів. Окремий клас включає такі елементи: поля, методи, властивості, події. Поля класу подібні до полів запису і служать для зберігання інформації про об’єкт. Поле описується як змінна, що може належати до будь-якого типу. Методи –це процедури та функції, призначені для опрацювання полів. Заголовок методі розміщується в опису класу, а сам код – в розділі реалізації модуля. Властивості займають проміжне положення між полями та методами. Кожній властивості відповідає поле, що містить її значення, і 2 методи, що забезпечують доступ до цього поля (читання/запис значень). Подія –спеціальна властивість типу TNotifyEvent. Структура класу:



Typeназва класу = class(назва класу предка)

(відкриті/опубліковані поля, методи, властивості, події);

Private//видно тільки в цьому модулі

Закриті поля, методи, властивості, події;

Protected//видно у цьому модулі і нащадкам

Захищені поля, методи, властивості, події;

Public//відкритий доступ

Відкриті поля, методи, властивості, події;

Published//відкритий доступ і видно в Інспекторі об’єктів

Опубліковані поля, властивості;

End;

Клас TObject є базовим класом для всіх інших класів.

3. Зміст і призначення поняття об’єкт (екземпляр). Яку пам’ять використовує екземпляр?

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

var c1,c2,c2: TCircle;

Тут визначені об’єкти с1, с2, с3 типу TCircle. В Object Pascal усі об’єкти розміщуються в динамічній пам’яті, а тому вони фактично є покажчиками спеціального виду. Під час компілювання програми кожному об’єкту, незалежно від його класу, виділяється фіксована ділянка пам’яті (4 байти) для зберігання адреси розміщення об’єкта в динамічній пам’яті. Перш ніж звертатись до елементів об’єкта, його необхідно створити за допомогою конструктора, і, при потребі, задати в ньому початкові значення полів об’єкта. При створенні нового об’єкта виклик конструктора реалізується через назву класу, наприклад:

c1:=TCircle.create;

Покажчик (об’єкт) с1 отримує адресу розміщення у динамічній пам’яті нового об’єкта класу TCircle.якщо конструктор Create доповнювався у відповідному класі, то під час виконання він має ініціалізувати поля і/або властивості об’єкта за допомогою значень, що передаються як аргументи конструктора:

c2:=TCircle.Create(x2,y1);

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

 

4. Що таке успадкування (наслідування)? З якою метою його використовують?

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

TNewClass=Class (TOldClass) …

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

У Object Pascal усі класи є нащадками класу TObect. Цей клас не має полів і властивостей, але його методи дають зможу створювати, підтримувати діяльність і знищувати об’єкти. Використання принципу наслідування привело до створення у Delphi розгалуженого дерева класів, у верхній частині якого знаходяться абстрактні класи, для яких не можна створити об’єкти. Водночас вони є предками класів, для яких уже створюються реальні об’єкти.

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

 

5. Що таке поліморфізм? Як його реалізують? Як його використовують?

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

 



<== предыдущая лекция | следующая лекция ==>
Введение в лабораторную работу | Основні етапи об’єктно-орієнтованого проектування.


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.605 сек.