Основы программирования. Указатели. Динамические структуры данных. Абстрактные типы данных. Классы - 35 стр.

UptoLike

Составители: 

37
указывается имя класса с последующей точкой. Совокупность методов образует
интерфейс класса.
Принцип объединения в одной оболочке полей и методов для доступа к этим
полям и работы с ними называется инкапсуляцией (encapsulation, «как бы в капсу-
ле»). Инкапсуляция предусматривает также защиту доступа: у класса имеется за-
крытая (private, приватная) и открытая (public,
публичная) часть. Обычно в
закрытую часть помещаются все поля и некоторые вспомогательные методы. Ме-
тоды в открытой части образуют открытый интерфейс класса. Доступ к полям и
методам из приватной части возможен только из методов этого класса. Например,
в методе Push класса Stack осуществляется доступ к приватному полю head.
Доступ к полям
и методам из публичной части возможен отовсюду. В Delphi име-
ется небольшое ослабление правил доступа: к приватной части класса доступ
возможен отовсюду из модуля, в котором данный класс определен.
Поскольку, создавая класс, мы определяем новый тип данных общего поль-
зования, то обычно классы описываются в модуле. При этом объявление класса
помещается
в секцию интерфейса модуля, а реализация его методовв секцию
реализации модуля.
Заметим, что описания классов внутри подпрограмм в Delphi запрещены.
Конструкторы и деструкторы
В состав любого класса входят два специальных методаконструктор и де-
структор. Их объявления аналогичны объявлению метода-процедуры, но вместо
зарезервированного слова procedure используются зарезервированные слова
constructor и destructor. Традиционно в Delphi конструктор принято име-
новать Create, а деструкторDestroy. В классе может быть несколько конст-
рукторов с разными наборами параметров, а
деструктор, как правило, один и не
имеет параметров.
Конструктор выделяет место под объект в динамической памяти и возвраща-
ет адрес начала этого участка памяти, а также инициализирует поля созданного
объекта. Этот адрес присваивается переменной-объекту. Вызов конструктора
имеет следующий вид:
ИмяОбъекта := ИмяКласса.ИмяКонструктора(параметры);
Например, в результате создания объекта
var s1: Stack;
begin
s1:=Stack.Create;
мы получим следующую структуру в оперативной памяти: