История развития пистолетов-пулеметов: Предпосылкой для возникновения пистолетов-пулеметов послужила давняя тенденция тяготения винтовок...
Поперечные профили набережных и береговой полосы: На городских территориях берегоукрепление проектируют с учетом технических и экономических требований, но особое значение придают эстетическим...
Топ:
Установка замедленного коксования: Чем выше температура и ниже давление, тем место разрыва углеродной цепи всё больше смещается к её концу и значительно возрастает...
Техника безопасности при работе на пароконвектомате: К обслуживанию пароконвектомата допускаются лица, прошедшие технический минимум по эксплуатации оборудования...
Процедура выполнения команд. Рабочий цикл процессора: Функционирование процессора в основном состоит из повторяющихся рабочих циклов, каждый из которых соответствует...
Интересное:
Распространение рака на другие отдаленные от желудка органы: Характерных симптомов рака желудка не существует. Выраженные симптомы появляются, когда опухоль...
Инженерная защита территорий, зданий и сооружений от опасных геологических процессов: Изучение оползневых явлений, оценка устойчивости склонов и проектирование противооползневых сооружений — актуальнейшие задачи, стоящие перед отечественными...
Принципы управления денежными потоками: одним из методов контроля за состоянием денежной наличности является...
Дисциплины:
2017-11-17 | 328 |
5.00
из
|
Заказать работу |
Содержание книги
Поиск на нашем сайте
|
|
В конце 60-х годов кому-то пришло в голову объединить такие понятия как тип данных, процедура, функция, запись и то, что получилось, назвать объектом. Рассмотрение данных в неразрывной связи с методами их обработки позволило вывести формулу объекта:
Объект = Данные + Операции
На основании этой формулы была разработана методология объектно - ориентированного программирования (ООП).
В общем случае каждый объект "помнит" необходимую информацию, "умеет" выполнять некоторый набор действий и характеризуется набором свойств.
Например, объект "кнопка" имеет свойство "цвет". Значение цвета, кнопка запоминает в одном из своих полей. При изменении значения свойства "цвет" вызывается метод, который перерисовывает кнопку.
Но на этом дело не остановилось. Когда прикладные программы были консольно-ориентированными, а пользовательский интерфейс был простым, объекты казались пределом развития программирования, поскольку были идеальным средством разбиения сложных задач на простые подзадачи. Однако с появлением графических систем, программирование пользовательского интерфейса резко усложнилось. Программист в какой-то мере стал дизайнером, а визуальная компоновка и увязка элементов пользовательского интерфейса (кнопок, меток, строк редактора) начали отнимать основную часть времени. И тогда программистам пришла в голову идея визуализировать объекты, объединив программную часть объекта с его видимым представлением на экране дисплея в одно целое. То, что получилось в результате, было названо компонентом.
Компоненты в среде Delphi — это особые объекты, которые являются строительными элементами визуальной среды разработки и приспособлены к визуальной установке свойств. Чтобы превратить объект в компонент, первый разрабатывается по определенным правилам, а затем помещается в палитру компонентов. Конструируя приложение, вы берете компоненты из палитры компонентов, располагаете на форме и устанавливаете их свойства в окне инспектора объектов. Внешне все выглядит просто, но чтобы достичь такой простоты, потребовалось создать механизмы, обеспечивающие функционирование объектов-компонентов уже на этапе проектирования приложения! Таким образом, компонентный подход значительно упростил создание приложений с графическим пользовательским интерфейсом и дал толчок развитию новой индустрии компонентов.
|
Описание класса
А теперь самое время вспомнить, что язык Objectpascal является типизированным, значит, объекты будут являться переменными, но они должны принадлежать какому-то типу. Этот новый тип данных назвали классом. Каждый объект всегда принадлежит некоторому классу объектов. Класс объектов — это обобщенное (абстрактное) описание множества однотипных объектов. Объекты являются конкретными представителями своего класса, их принято называть экземплярами класса. Например, класс «мебель» — понятие абстрактное, а экземпляр этого класса «письменный стол» — понятие конкретное.
Классы объектов определяются в секции type глобального блока. Описание класса начинается с ключевого слова class и заканчивается ключевым словом end. По форме объявления классы похожи на обычные записи, но помимо полей, данных могут содержать объявления пользовательских процедур и функций. Такие процедуры и функции обобщенно называют методами, они предназначены для выполнения над объектами различных операций:
Type <имя_класса> = class [(имя_родительского_класса)]
Список членов класса
end;
Имя родительского класса указывается, если новый класс должен наследовать все его характеристики. Исключать какие-то члены родительского класса нельзя. Если родительский класс не указан, то по умолчанию будет наследование характеристик класса TObject, который содержит конструктор, деструктор и общие свойства и методы классов в среде Delphi, предназначенные для создания объектов. Рекомендуется всегда явно указывать базовый родительский класс TObject.
|
Описание классов бывает двух типов: упреждающее и реальное. Использование первого обусловлено особенностью языка object pascal и заключается в том, что нельзя использовать класс (переменную, тип данных, константу) предварительно не описав его. Иногда случается так, что один класс должен быть включен во второй, но его описание расположено ниже и поэтому не может быть использовано. Тогда поступают следующим образом: дают упреждающее описание класса1, затем реальное описание класса2 с включенным в него полем класса1 и только затем реальное описание класса1. Упреждающее описание имеет вид:
Type <имя_класса> = class;
Т.е. такое описание определяет только заголовок класса. Список членов класса здесь отсутствует. Его наличие означает реальное описание класса. Пример:
Листинг 1.3
Type
TMyClass1= class; //упреждающее объявление
TMyClass2 = class (TObjecj) //реальноеобъявление
Simp:TMyClass1;
End;
TMyClass1 = class (TObject); //реальное объявление
Последняя строчка примера означает, что класс TMyClass1 будет равен TObject и может использоваться для его замещения.
В качестве членов класса выступают поля, методы, а так же некоторые их модификации. Поля хранят данные и фактически являются переменными, объявленными внутри класса. Методы необходимы для того чтобы можно было оперировать полями. Их модификации расматриваются далее.
Листинг 1.4. Пример простого класса
//объявляемновыйкласс
Type TSimpleClass = class (TObject)
fv:integer; //поле 1
fFileMy:string; //поле 2
fF:text; //поле 3
procedure Draw(); //метод 1
function GetCount(): integer; //метод 2
procedure SetActive(AActive: Boolean); //метод 3
end;
…
var MyClass: TSimpleClass; //объявляемновыйобъект
|
|
Своеобразие русской архитектуры: Основной материал – дерево – быстрота постройки, но недолговечность и необходимость деления...
Индивидуальные и групповые автопоилки: для животных. Схемы и конструкции...
История развития пистолетов-пулеметов: Предпосылкой для возникновения пистолетов-пулеметов послужила давняя тенденция тяготения винтовок...
Наброски и зарисовки растений, плодов, цветов: Освоить конструктивное построение структуры дерева через зарисовки отдельных деревьев, группы деревьев...
© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!