По крайней мере, все является - TObject

Хотя в своих примерах программ в этой главе я недвусмысленно объявляю свои объекты потомками TObject (таким образом я напоминаю себе и вам, что это имеет значение), в действительности все классы, объявленные без точно указанного класса-предка являются классами-потомками TObject. Поскольку все стандартные классы, обеспечиваемые Delphi, происходят от TObject, это гарантирует то, что каждый конкретный класс объектов, объявленный вами в Delphi будет, как минимум, классом-потомком TObject. Это поощряет использование стандартного метода создания и уничтожения объектов применительно ко всем объектам Delphi (как я объясню ниже), а также делает возможным полиморфизм применительно ко всем объектам, как я поясню в Главе 10.

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

Только два метода TObject могут найти заметное применение у начинающих программистов в Delphi. Более важным из этих двух является Create. Метод Create - это то, как вы создаете экземпляры класса объектов. Не делайте распространенной ошибки, решив, что все, что вам необходимо сделать, чтобы создать объект, это просто объявить переменную, чьим типом является класс объектов

var MyObjectlnstance : ItsClass; { Этого недостаточно }

Не поймите меня превратно: вы конечно должны сделать это - как вы можете видеть в Листинге 8.5 (несколько позднее в этой главе), но объявление переменной класса объектов недостаточно. Объекты специально упрятаны поглубже целым рядом способов, которые я пока не могу пояснить, и они появляются вследствие двухшагового процесса. Сперва вы должны объявить переменную класса объектов, как показано выше, а затем - создать этот объект, используя его метод Create:

MyObjееtins tance.Create ;

Имейте в виду, что вы не построили метод Create в классе ItsQass, когда записали его. Метод Create является частью определения класса TObject, и каждый класс, определенный в Delphi, содержит в своем основании класс TObject. Таким образом, независимо от того, какой класс вы определяете, или от того, на каком классе-предке он основывается, вы обнаружите все методы TObject, включая Create.

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

Программирование в среде Delphi
Рис. 8.4 Delphi-подсказка Help для класса TObject статической памятью, где создаются обычные переменные, но статическая память именно таковой и является, она не изменяется во время выполнения приложения и обычные переменные занимают место именно в статической памяти все время, пока программа выполняется Переменные в динамической памяти, однако, могут появляться и исчезать по мере необходимости, что делает использование вашей драгоценной оперативной памяти гораздо более эффективным.

Объекты могут существовать только в динамической памяти. Метод Create располагает их в куче и сообщает скрытым механизмам Delphi, управляющим динамической памятью, что объект существует, и где он находится. Статические переменные, которые вы можете объявить вместе с классом объектов, похожи на кол, врытый в землю и удерживающий воздушного змея посредством бечевки. Кол нужен, иначе змей улетел бы и потерялся, но кол без змея - это всего лишь кол. Использование метода Create напоминает запуск воздушного змея и привязывание его к такому колу бечевкой.


⇐ Предыдущая страница| |Следующая страница ⇒

Программирование в среде Delphi



Новости за месяц

  • Декабрь
    2021
  • Пн
  • Вт
  • Ср
  • Чт
  • Пт
  • Сб
  • Вс
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31