русс | укр

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

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

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

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


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

Що таке абстрактний базовий клас? Як його оголошують, коли використовують?


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


Абстрактний клас в об'єктно-орієнтованому програмуванні - базовий клас, який не передбачає створення екземплярів. Абстрактні класи реалізують на практиці один з принципів ООП - поліморфізм. Абстрактний клас може містити (і не містити [1]) абстрактні методи і властивості. Абстрактний метод не реалізується для класу, в якому описаний, однак повинен бути реалізований для його неабстрактних нащадків. Абстрактні класи являють собою найбільш загальні абстракції, тобто мають найбільший обсяг і найменше зміст. В одних мовах створювати екземпляри абстрактних класів заборонено, в інших це допускається (наприклад, Delphi), але звернення до абстрактного методу об'єкта цього класу в процесі виконання програми призведе до помилки. Абстрактний клас можна розглядати в якості інтерфейсу до сімейства класів, породженому ним, але, на відміну від класичного інтерфейсу, абстрактний клас може мати певні методи, а також властивості. Абстрактні методи часто є і віртуальними. У ООП може бути оголошений абстрактний клас з абстрактними методами:

TAbstractClass = class

procedure NonAbstractProcedure;

procedure AbstractProcedure; abstract; end;

Для такого класу може бути створений об'єкт, але звернення до методу AbstractProcedure цього об'єкта під час виконання викличе помилку. В останніх версіях Delphi також може бути оголошений абстрактним сам клас:

TAbstractClass = class abstract

procedure SomeProcedure; end;

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

34. Призначення та використання таблиці віртуальних методів.

Кожен об'єктний тип, що містить або наслідує віртуальні методи, конструктори або деструктори, має пов'язану з ним таблицю віртуальних методів, в якій запам'ятовується ініціалізуюча частина сегмента даних програми. Для кожного об'єктного типу (але не для кожного екземпляра) є тільки одна таблиця віртуальних методів, проте два різних об'єктних типу ніколи не розділяють одну таблицю віртуальних методів, незалежно від того, наскільки ці типи ідентичні. Перше слово таблиці віртуальних методів містить розмір примірників відповідного об'єктного типу. Ця інформація використовується конструкторами і деструкторами для визначення того, скільки байт виділяється або звільняється при використанні розширеного синтаксису стандартних процедур New і Dispose. Друге слово таблиці віртуальних методів містить негативний розмір примірників відповідного об'єктного типу.



9. Як засобами ООП моделюють відношення has-a? Наведіть приклад.

Під контейнером зазвичай розуміють об'єкт, основним призначенням якого є зберігання та забезпечення доступу до інших об'єктів. Контейнери реалізують відношення "HAS-A" ("МАЄ") між об'єктами. Вбудовані типи, список і словник - яскраві приклади контейнерів. Можна побудувати власні типи контейнерів, які будуть мати свою логіку доступу до збережених об'єктів. У контейнері зберігаються не самі об'єкти, а посилання на них.

У об'єктно-орієнтованому програмуванні й проектуванні баз даних «Has-a» — взаємозв'язок в якому один об'єкт (званий об'єктом, що становить) «належить» (є частиною або членом) іншого об'єкта (званого складеним об'єктом) і підкоряється правилам приналежності.

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

Type TVect=class

Private mem:array of TVolShape; size,len:integer;

Name:string; …; end;

В даному прикладі клас TVect є контейнером об’ємних фігур TVolShape.

 

10. Логічна структура об’єктно-орієнтованої програми.Об’єктно-орієнтована програма повинна бути побудована на структурному підході (структура нагадує «дерево»), в подальшому це модульне програмування, яке передбачає декомпозицію задачі у вигляді ієрархії взаємодіючих модулів (програм). Модуль, який міс­тить дані та процедури їхнього опрацювання, є зручним для авто­номного проектування та налагодження. Розвитком ідеї модульно­го програмування є моделювання об’єктів предметної області за допомогою класів(об’єктних типів). Об’єкт, який необхідно моделювати, уявляється людині цілі­сно, хоча він складається з частин та інших об’єктів. Цілісне уявлення об’єкта у вигляді взаємозв’язаної сукупності його власти­востей є базовим принципом об’єктного підходу. Клас – це визначена програмна структура, яка має три важливі властивості: інкапсуля­ції, наслідування та поліморфізму. Ці властивості дають змогу адекватно відображати структуру предметної області. Клас- це деякий абстрактний тип, який створюється на ос­нові наявних типів. Окремий клас включає такі елементи, як поля, методи, властивостіі події.Правильні оголошення , дії та співвідношення між класами та їхніми елементами і складають логічна структура об’єктно-орієнтованої програми.

11. Проектування фізичної структури об’єктно-орієнтованої програми.Як відомо об’єктно-орієнтована програма складається з класів. Клас- це деякий абстрактний тип, який створюється на ос­нові наявних типів. Окремий клас включає такі елементи (або чле­ни), як поля, методи, властивостіі події.Клас – це визначена програмна структура, яка має три важливі властивості: інкапсуля­ції, наслідування та поліморфізму. Полякласу подібні до полів запису і служать для зберігання інформації про об’єкт. Поле описується як змінна, що може належати до будь-якого типу. Методи- це процедури і функції, призначені для опрацюван­ня полів. Властивостізаймають проміжне положення між полями і методами. Клас має таку структуру (…). Усі об’єктирозміщуються в динамічній па­м’яті, тому для їхнього створення і знищення потрібно мати кон­структор і деструктор. Об’єкт зберігається у вигляді даних всіх його полів і посилань на таблицю віртуальних методів. У процесі проектування об’єктно-орієнтованої програми потрібно пам’ятати про коректність оголошення класу та його елементів, визначити взаємозв’язки між надкласами та підкласами (якщо такі є) та його правильне знищення.



<== предыдущая лекция | следующая лекция ==>
Проектування ієрархії класів: Що таке надклас, підклас? Яку роль вони відіграють? | Оголошення класу. Базовий попередних класів у Object Pascal.


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


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

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

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


 


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

 
 

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

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