Студопедия КАТЕГОРИИ: АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Классы и объекты Object Pascal
Основой объектно-ориентированного программирования является объект. Объект состоит из трёх основных частей: 1) Имя (например, автомобиль); 2) Состояние или переменные состояния (например, марка автомобиля, цвет, масса, число мест и т. д.); 3) Методы или операции, которые выполняют некоторые действия над объектами и определяют, как объект взаимодействует с окружающим миром. Объектно-ориентированное программирование (ООП) представляет собой технологию разработки программ с использованием объектов. В объектно-ориентированных языках есть три основных понятия: Для объявления класса используется конструкция: Type <поля и методы класса> private published <поля и методы, видимые в инспекторе объектов> end; В качестве имени класса можно использовать любой допустимый в FreePascal идентификатор. Имя класса родителя — имя класса, наследником которого является данный класс, это необязательный параметр, если он не указывается, то это означает, что данный класс является наследником общего из предопределённого класса TObject. Структуры отличаются от классов тем, что поля структуры доступны всегда. При использовании классов могут быть члены, доступные везде — публичные (описатель public), и приватные (описатель private). доступ к которым возможен только с помощью публичных методов. Это также относится и к методам класса. Поля, свойства и методы секции public не имеют ограничений на видимость. Они доступны из других функций и методов объектов как в данном модуле, так и во всех прочих, ссылающихся на него. При обращение к публичным полям вне класса используется оператор «. » (точка). Поля, свойства и методы, находящиеся в секции private, доступны только в методах класса и в функциях, содержащихся в том же модуле, что и описываемый класс. Это позволяет полностью скрыть детали внутренней реализации класса. Вызов приватных методов осуществляется из публичных. Публикуемый (published) — это раздел, содержащий свойства, которые пользователь может устанавливать на этапе проектирования, и которые доступны для редактирования в инспекторе объектов. Защищенный (protected) — это раздел, содержащий поля и методы, которые доступны внутри класса, а также любым его классам-потомкам, в том числе и в других модулях. Поля и методы, описанные до указания имени секции, являются публичными (public). Поля могут быть любого типа, в том числе и классами. Объявление полей осуществляется так же, как и объявление обычных переменны полей : поле2: тип_данных; Методы в классе объявляются так же, как и обычные подпрограммы: procedure метод2 (список параметров); Описание процедур и функций, реализующих методы, помещается после слова implementation того модуля, где объявлен класс. Объявление переменной типа class называется созданием (инициализацией) объекта (экземпляра класса). Экземпляр класса объявляется в блоке описания переменных: var имя_переменной : имя_класса; После описания переменной в программе можно обращаться к полям и методам класса аналогично обращению к полям структуры, используя оператор «. ». Например: имя переменной.поле1:=выражение; имя переменной.метод1(список параметров); Также можно использовать оператор With: With имя_переменной do begin полег: выражение; метод! (список параметров ); end; В FreePascal имеется большое количество классов, с помощью которых описывается форма приложения и её компоненты (кнопки. поля, флажки и т. п.). В процессе конструирования формы в текст программы автоматически добавляются программные объекты. Класс (объект) — это динамическая структура. В отличие от статической, она содержит не сами данные, а ссылку на них. Поэтому программист должен сам позаботиться о выделении памяти для этих данных. Конструктор — это специальный метод, создающий и инициализирующий объект. Объявление конструктора имеет вид: Описывают конструктор так же, как и другие методы, после ключевого слова implemention того модуля, в котором объявлен класс. Деструктор — это специальный метод, уничтожающий объект и освобождающий занимаемую им память. Объявляется деструктор следующим образом: destructor Destroy; Если в программе какой-либо объект больше не используется, то оператор имя_переменной_типа_класс.fгее; |
||
Последнее изменение этой страницы: 2018-04-12; просмотров: 387. stydopedya.ru не претендует на авторское право материалов, которые вылажены, но предоставляет бесплатный доступ к ним. В случае нарушения авторского права или персональных данных напишите сюда... |