|
|||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Вопрос. Объектные типы данных
Объект = данные + операции Объектные типы данных называют классами. Один ОТ может наследовать данные от другого. Могут описываться только в разделе описаний типов.
Примерный вид: type TDel = class // поля FileVar: TextFile I: array of string; // методы procedure SetAct (const A: boolean) function NextLine: boolean; end;
TA = class - предок TD = class(TA) - наследок
Все классы потомки TObject.
*****
Вопрос. Принципы ООП. 1) Инкапсуляция - комбинирование записей с процедурами и функциями. Формируется новый тип - объект. 2) Наследование - определение объекта и его дальнейшее использование для построения порождающих объектов. Не нужно ничего переписывать - новый класс формируется из старых. 3) Полиморфизм - кратко "один интерфейс - много реализаций" В произвольных классах можно менять работу уже существующих в базовом классе методов.
Дописать про реализацию этого в ОР. Используя вопрос 20.
*****
Вопрос.
Класс - тип данных. Описание класса: type <name> = class(имя предка, если он есть) список членов класса (список полей, свойств и методов. Тут так же могут быть процедуры и функции) end;
Потом всё это дело суём в var MyClass: <name of class>
Существует 5 областей видимости: 1) public - видно из любой части программы. 2) private - доступны только в том модуле, где класс описан. 3) protected - как и приват, но так же досутпен и в наследниках. 4) published - свойства класса такие же как у паблика. 5) automated (public)
***** Вопрос. Виды методов.
1) Статистические. Все методы такие по умолчанию. 2) Виртуальные методы. Пример записи: type Tcar = class (TObject) procedure Move; virtual; end; За них отвечает слово virtual. 3) Перегружаемые методы. (reintroduce)
Создание и удаление объектов: var MyClass: TMyClass; 1) MyClass: = TMyClass.create; 2) MyClass.Free
*****
Вопрос. Виртуальные методы.
В случае virtual извлекается по индексам бит таблица адреса вируталньой процедуры и по этому адресу виртуал позволяет вызывать быстрее - оптимизирует для максимального быстродействия.
Абстракт - разновидность виртуал.
virtual - обозначить. override - переопределение.
Вызов: 1) через объектную переменную обращается к блоку памяти. 2) извлекается адрес таблицы виртуальных методов. 3) вызывается адрес соответствующей подпрограммы. 4) вызов кода по адресу.
*****
Вопрос.
Свойства - атрибуты, составляющие индивидуальность объекта. Например color, height, width etc. Описывается следующим образом, как на примере: AnObject.AColor: = AValue AVariable:= AnJbject.AColor
Для присваивания значения по умолчанию используется default. Действия со свойствами: read, write, default, implements
Нужны для того чтобы: 1) Упростить доступ к полям данных, которые должны быть закрытыми 2) Гарантированно выполнить операции, которые надо сделать при получении свойств.
*****
Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.003 сек.) |