N Пример

Begin

Begin

Begin

Begin

Public

Private

Type

Пример.

Базовые принципы ООП

ООП характеризуется тремя базовыми принципами:

4. Инкапсуляция

5. Наследование

6. Полиморфизм

1.Инкапсуляция

Инкапсуляцией называется скрытие полей объекта с целью обеспечения доступа к ним только посредством методов класса.

Ограничение доступа к полям объекта реализуется в Delphi при помощи свойствобъекта.

Свойство объекта характеризуется

полем, сохраняющим значение свойства;

двумя методами, обеспечивающими доступ к полю свойства.

Методы, обеспечивающие доступ к полю свойства:

Метод установки значения свойства – метод записи свойства (write).

Метод получения значения свойства – метод чтения свойства (read).

Для описания свойства в определении класса указывают:

зарезервированное слово property;

имя свойства;

тип свойства;

имена методов, обеспечивающих доступ к значению свойства.

Оформление данных объекта как свойства позволяет ограничить доступ к соответствующим полям.

Например: разрешить только чтение свойства.

Чтобы инструкции программы не могли изменить значение свойства, нужно в описании свойства указать только имя метода чтения. В этом случае попытка присвоить значение свойству вызовет ошибку во время компиляции.

Установить значение свойства, защищенного от записи, можно во время инициализации объекта

Описание класса TPerson, содержащего свойства Name и Address:

TName = string [15];

TAddress = string [50];

TPerson = class

fname: TName;

faddress: TAddress;

constructor Create (Name: TName);

procedure Show;

function GetName: TName;

function GetAddress: TAddress;

procedure SetAddress (NewAddress: TAddress);

property Name: TName

read GetName;

property Address: TAddress

read GetAddress write SetAddress;

Свойство Name доступно только для чтения. Свойство Addressдоступно для чтения и для записи.

Методы класса TPerson, обеспечивающие создание объекта этого класса и доступ к его свойствам.

конструктор объекта TPerson:

constructor TPerson.Create (Name: TName);

fname:= Name;

end;

метод получения значения свойства Name:

function TPerson.GetName;

result:= fname;

end;

метод получения значения свойства Address:

function TPerson.GetAddress;

result:= faddress;

end;

метод изменения значения свойства Address:

procedure TPerson.SetAddress(NewAddress:TAddress);

if faddress = ‘’

then faddress:= NewAddress;

end;

Чтобы присвоить значение свойству Address объекта student, в программе достаточно использовать инструкцию

student.Address:= ‘г. Тюмень, ул. Мельникайте, 75, кв. 6’

Компилятор преобразует эту инструкцию в инструкцию вызова метода

student.SetAddress(‘г. Тюмень, ул. Мельникайте, 75, кв. 6’)

Таким образом, инструкции, обеспечивающие создание объекта класса TPerson и установку его свойств, могут выглядеть так:

student:= TPerson.Create(‘ИвановА.А.’);

student.Address:= ‘г. Тюмень, ул. Мельникайте, 75, кв. 6’

2.Наследование

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

Такой механизм получения новых классов называется порождением.

При этом новый, порожденный класс (потомок) наследует свойства и методы своего базового, родительского класса

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

Реализация конструктора класса TProfessor:

constructor TProfessor.Create(Name: TName; dep: string);


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: