Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Программирование в Delphi 5.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
410.11 Кб
Скачать

 

 

 

Программирование в Delphi 5

 

Главная

 

Руководства

 

Статьи

 

FAQ

 

Книги

 

Ссылки

 

Глава 1

Основы объектно-ориентированного программирования

  • Основные понятия

  • Создание и уничтожение объектов

  • Инкапсуляция Свойства

  • Наследование

  • Полиморфизм Виртуальные и динамические методы

  • Перегрузка методов

  • Абстрактные методы

  • События и делегирование

  • Обработка сообщений Windows

  • Области видимости

  • Как устроен объект изнутри

  • Резюме

Многие главы этой книги вполне самостоятельны и могут быть прочитаны в любом порядке (или не прочитаны вовсе). Однако данная глава представляет собой без преувеличения краеугольный камень. Если вы — новичок в Delphi и не знакомы с объектно-ориентированным программированием (далее — ООП), то чтение последующих глав без этой будет сильно затруднено. Без преувеличения, 99% программ, созданных в Delphi, опираются на объекты и связанные с ними понятия. Поэтому без понимания внутренней логики работы внешне простых вещей далеко не уйти.

Даже если вы профессионал, советуем прочитать, изложенное ниже. Программисты из фирмы Inprise непрерывно совершенствуют язык Object Pascal и иерархию объектов. Об этом — также в этой главе.

Основные понятия

В этом разделе мы рассмотрим класс, объект, поле, метод и свойство.

Классом в Object Pascal называется особая структура, которая может иметь в своем составе поля, методы и свойства. Такой тип также будем называть объектным типом:

type

TMyObject = class(TObject) MyField: Integer;

Function MyMethod: Integer;

end;

Чтобы использовать любой тип данных в программе, нужно, как минимум, объявить переменную этого типа. Переменная объектного типа называется экземпляром класса, или объектом:

var

AMyObject: TMyObject;

До введения термина "класс" в языке Pascal существовала двусмысленность определения "объект", который мог обозначать и тип, и переменную этого

типа. Теперь же существует четкая граница: класс — это описание, объект — то, что создано в соответствии с этим описанием.

Из чего состоит объект?

Поля объекта аналогичны полям записи. Это — данные, уникальные для каждого созданного в программе экземпляра класса. Описанный здесь класс TMyObject имеет одно поле — MyField.

В отличие от полей, методы у всех объектов одного класса общие. Методы — это процедуры и функции, описанные внутри класса и предназначенные для операций над его полями. В состав класса входит указатель на специальную таблицу, где содержится вся информация, нужная для вызова методов. От обычных процедур и функций методы отличаются тем, что им при вызове передается указатель на тот объект, который их вызвал. Поэтому обрабатываться будут поля именно того объекта, который вызвал метод. Внутри метода указатель на вызвавший его объект доступен под зарезервированным именем self.

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

О братите внимание, что классы могут быть описаны либо в секции интерфейса (interface) модуля, либо на верхнем уровне вложенности секции реализации (implementation). He допускается описание классов "где попало", т. е. внутри процедур и других блоков кода.

Разрешено опережающее объявление классов, как в следующем примере:

type

TFirstObject = class;

TSecondObject = class(TObject) Fist : TFirstObject;

end;

TFirstObject == class(TObject) F2nd : TSecondObject;

end;