пользователей: 30398
предметов: 12406
вопросов: 234839
Конспект-online
РЕГИСТРАЦИЯ ЭКСКУРСИЯ


Реализация объектной модели в Object Pascal. Определение и объявление классов и объектов. Понятия полей, методов и свойств. Конструкторы и деструкторы. Пример.

 

Понятия класса и объекта

Объекный тип (класс) представляет собой объединение данных и правил их преобразования. Переменные объектного типа называются экземплярами класса или просто объектами. Класс – это тип объекта; объект – это конкретный экземпляр класса. Гради Буч: «Каждый объект является экземпляром какого-либо класса, а класс может порождать любое количество объектов».

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

type

TMyObject = class(TObject)

MyField : integer;

function MyMethod : integer;

property MyProp : integer read GetMyField write SetMyField;

end;

Класс -родитель Полей Метод Свойство

type
 CoordType = record

XCoord : integer;

YCoord : integer;
   end;
TLocation = class(TObject)

XCoord, YCoord : integer;

procedure SetCoord(CoordRee : CoordType);

end;

procedure TLocation.SetCoord(CoordRee : CoordType);

begin

with CoordRee do

begin

Self.XCoord := XCoord;

Self.YCoord := YCoord;

end;

end;

Конструкторы и деструкторы

В Object Pascal экземпляры классов могут быть только динамическими.

Конструктор представляет собой метод класса, который облегчает программам инициализацию элементов данных класса. Деструктор – метод класса, освобождающий память после объекта.

Конструктор возвращает имя объекта, деструктор не имеет возвращаемого значения.

Пример:

type

TMyObject = class(TObject)

MyField : integer;

construcror Create;

destructor Destroy;

Function MyMethod : integer;

end;

Ключевое слово Inherited используется, чтобы использовать родительский конструктор или метод деструктора, как соответствующий для текущего класса. Оно вызывается в начале конструктора, и в конце деструктора. Это не является обязательным, но рекомендуется.

Без параметров Inherited вызывает так же названный метод родительского класса, с теми же самыми параметрами. § constructor TMyObject.Create; § begin § inherited Create; § … § end;

Деструкторы имеет смысл отдельно описывать, если в качестве полей используются динамические массивы, ДСД, файлы и т.д. Конструкторы и деструкторыl Пример: type TPerson = class Name: string; AgeMin, Age: word; procedure SetYear(Value: word); constructor Create(Name1: string, Age1: word); destructor Destroy; // указывать необязательно end; … constructor TРerson.Create (Name1: string, Age1: word); begin inherited; Age:=Age1; Name:=Name1; end;

Конструкторы и деструкторы Инициализация полей, выделение памяти под поля- массивы, ассоциирование и открытие файлов…Понятие объекта Объект обладает состоянием, поведением и идентичностью; структура и поведение схожих объектов определяет общий для них класс; термины "экземпляр класса" и "объект" взаимозаменяемы.Понятие объекта l Чтобы использовать новый тип в программе нужно как минимум объявить переменную этого типа. Переменная объектного типа называется экземпляром класса, или объектом: var AMyObject : TMyObject; Begin AMyObject := TMyObject.Create; {действия с созданным объектом:}AMyObject.MyField := 100; S := AMyObject.MyMethod; … AMyObject.Destroy; // или AMyObject.Free; …

 

30.      


22.01.2015; 17:50
хиты: 450
рейтинг:0
Точные науки
информатика
Языки программирования
для добавления комментариев необходимо авторизироваться.
  Copyright © 2013-2024. All Rights Reserved. помощь