Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
АИСд шпора2.docx
Скачиваний:
8
Добавлен:
27.09.2019
Размер:
86.39 Кб
Скачать

32. Объектные переменные.

Создание объектных переменных.

• Когда вы используете один из классов Delphi или свой собственный, вы должны создать его экземпляр. Что это

значит: вы должны распределить память и установить на

распределенный блок памяти указатель. В некоторых языках

это выглядит безобразно, в Delphi же это выглядит так...

MyVar := TMyClass.Create;

• Это действительно просто, поскольку метод конструктора Create класса TMyClass является классовым методом - он

работает в классе, а не в отдельном объекте. Когда вы вызываете конструктор, Delphi распределяет память и

возвращает значение указателя.

• Объявление объектной переменной

некоторого типа.

• Создание объекта вызовом метода

конструктора класса.

• Использование объекта по назначению.

• Освобождение объекта.

Пример реализации класса:

procedure Example;

var

MyObj: TMyClass; // класс, который вы создаете

MyList: TList; // встроенный класс

begin

MyObj := TMyClass.Create;

// теперь MyObj содержит адрес блока памяти, распределенной для

экземпляра вашего класса

MyList := TList.Create;

// Код для работы с MyList

....

здесь что-то делаем с объектом

....

MyList.Free;

// Ресурсы MyList удаляются из кучи

MyObj.Free; // тоже самое для MyObj

end;

33.Основные понятия ООП. 1) Первая особенность типа класс заключается в том, что в

одном типе объединены данные и код для обработки

этих данных. Это свойство класса называется

инкапсуляцией.

2) Наследование – вторая важная особенность объектных типов. Правила

объявления класса таковы, что любой объявляемый класс -потомок обязательно

должен быть связан с каким-либо другим классом- родителем(кроме класса

TObject). Объявляемый класс –потомок может использовать какие-либо

свойства, поля, методы уже существующих классов.

3) Свойство одного и того же метода вести себя по-разному называется

полиморфизмом ( одно и то же имя метода можно использовать у разных классов объектов).

34.Иерархия классов в Delphi. На первых порах разработчика программ

интересуют не все классы, а компоненты.

Компоненты – неотъемлемая часть

прикладной программы. Они формируют

основу интерфейса пользователя.

Компоненты для разработки интерфейса и

системные компоненты соответственно

называются визуальными и невизуальными. Невизуальные компоненты используются для реализации логической части приложения и функциональных

возможностей системной составляющей.

Визуальные компоненты входят в палитру компонентов и позволяют строить

пользовательский интерфейс приложения.

Delphi имеет большое количество встроенных

классов, которые образуют иерархическое дерево. Иерархию и отдельные элементы классов можно

увидеть с помощью Browse Objects, окно которого вызывается из меню: View-Browse.

Каждый класс обязательно является наследником

другого класса, за исключением TObject. TObject является предком для всех классов. Предком всех

компонент является класс TComponent.

Каждый класс обладает набором своих методов, свойств и полей, да

еще наследует массу подобных элементов. Многие свойства и методы имеют много общего и называются одинаково. Базовые встроенные классы следует рассматривать как библиотеку функций и возможностей,

которые к тому же можно наследовать при разработке собственных

классов.

Класс TObject реализует функции, которые обязательно будут

выполняться в процессе построения любого объекта: 1) Создание экземпляра класса и его уничтожение. Эта операция для размещенных на форме объектов выполняется автоматически.

2) Содержит ряд методов, обеспечивающих представление

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

приложением и средой разработки. Основное назначение класса TPersistent ( в переводе означает: устойчивый, постоянный) заключается в возможности выполнения

операции копирования содержимого одного объекта (Source) в

другой (Self).

Self – специальная переменная в объете-приемнике. При этом

используется метод Assign – простым присваиванием содержимое

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

структуры объекта-приемника.

Класс TСomponent используется в качестве основы для создания невизуальных компонентов и реализует основные механизмы, которые обеспечивают функционирование любого компонента.

Вслед за TСomponent в иерархии классов располагается группа

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

экране монитора и реагировать на целый ряд новых событий –

реакция на мышь, клавиатуру, движение курсора и т.д. Для этого в

них встроен специальный механизм, обеспечивающий

взаимодействие компонентов с графической подсистемой

операционной среды (GUI). Базовым для всех визуальных компонентов является класс TControl, который инкапсулирует механизмы отображения

компонентов на экране. Новые свойства : Top, Left, Height, Width,

значения свойств задаются в пикселях. Для определения

местоположения компонента используется система координат

рабочей области владельца (Owner – владелец) данного

компонента, например формы. Далее в иерархии классов стоит очень важный визуальный

компонент TWinControl, который обеспечивает использование в

Delphi оконных элементов управления. Главное отличие оконного элемента управления от других элементов – наличие дескриптора окна hWnd. Дескриптор окна – это специальный идентификатор,

присваиваемый операционной системой всем объектам, которые

должны обладать свойствами окна. Если элемент управления имеет дескриптор окна, то он должен уметь выполнять следующие операции:

• Получать и передавать фокус управления во время выполнения

приложения;

• Воспринимать управляющие воздействия от мыши и

клавиатуры;

• Уметь размещать на себе другие элементы управления.

Класс TWinControl предоставляет большой набор свойств, включая

следующие:

• ControlCount - указывает количество дочерних элементов управления.

• Controls - содержит список всех дочерних элементов управления.

• TabOrder - указывает номер элемента управления в табулированном

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

35.Класс как объектный тип. Класс позволяет создавать собственные модели поведения объектов. При этом используется, как

правило, иерархические совокупности понятий, с

помощью которых можно представлять решение задачи. Понятие класс позволяет программисту ввести

новый тип, который специфицирует данные,

необходимые для представления объектов этого типа, и множество операций для работы с этими объектами. Класс задает поведение объектов, т.е. как

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

36.Инкапсуляция. Класс – основной элемент

программирования в Delphi. Как тип, класс

имеет ряд особенностей. Первая особенность

типа класс заключается в том, что в одном

типе объединены данные и код для

обработки этих данных. Это свойство

называется инкапсуляцией.

Синтаксически класс подобен типу record, в

котором можно выделить следующие

элементы:

Поля служат для записи данных;

Методы – процедуры и функции для

обработки полей;

Свойства – специальные методы, к

которым можно обращаться как к полям.

Тип класс называется объектным типом. Объект представляет

собой реализацию класса. Один и тот же класс может порождать

множество объектов. Однако не существует двух объектов с

одинаковыми значениями.

Объявленные переменные объектных типов физически не

представляют собой экземпляров класса. Они являются просто

ссылками. Объекты создаются только в процессе выполнения

программы. Под объекты необходимо не просто выделить память

– их необходимо построить. Например, при построении формы

используется файл ресурсов. Однако Delphi позволяет трактовать

объект как обычную переменную.

В отличии от других типов class можно объявить только

глобально. Запрещено объявлять классы внутри процедур и функций.

Правила объявления класса таковы, что любой класс обязательно

должен быть связан с каким-либо другим классом (существует одно исключение – класс TObject, являющийся корнем иерархического дерева классов).