русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Поля и свойства

Итак, принцип инкапсуляции требует, чтобы любая работа со свойствами объекта происходила только через вызовы его методов. Следовательно, если у объекта obj есть свойство n:byte и его надо изменить, следующая строка:

obj.n:=10

некорректна. По идее, надо вызывать метод:

obj.SetN(10)

Однако первый вариант записи (с явным использованием оператора присваивания) гораздо легче воспринимается.

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

Рис. 9.3. Поля и свойства.

Иначе говоря, для того, чтобы можно было считывать или изменять значения полей, в соответствие полю ставится свойство объекта (property). Свойство объекта доступно извне объекта. При его изменении или считывании его значения происходит автоматический вызов метода - процедуры или функции, связанной с этим свойством. Таким образом, любые изменения значений полей происходят не напрямую, а только через вызов процедуры/функции.

На Рис. 5.3 представлена схема объекта, имеющего три поля fld1, fld2, fld3. Из них поле fld2 является полностью скрытым – с ним не связано никакое свойство. Данное поле можно использовать только внутри методов объекта, но извне оно не будет доступно. С полями же fld1, fld3 cвязаны свойства prop1и prop3 соответственно. Обычно тип данных свойств совпадает с типом данных связанных с ними полей. Для записи значения в поля предназначены методы SetFld1(n:byte) и SetFld3(n:word). На вход им подаются новые значения свойств. Чтение значений свойств осуществляется методами-функциями GetFld1:byte и GetFld3:word. Описание объекта будет иметь вид:

TYPE TO=CLASS

PRIVATE

fld1:byte;

fld2:string;

fld3:word;

PROCEDURE SetFld1(n:byte);

PROCEDURE SetFld3(n:byte);

FUNCTION GetFld1:byte;

FUNCTION GetFld1:word;

PUBLIC

PROPERTY prop1:byte READ GetFld1 WRITE SetFld1;

PROPERTY prop3:byte READ GetFld3 WRITE SetFld3;

END;

Описание PROPERTY создает свойство объекта и назначает методы для его чтения (READ) и записи (WRITE). Свойство может не иметь метода для записи – тогда оно будет доступно только для чтения, или не иметь метода для чтения – тогда в него можно будет только записывать значения.

Просмотров: 550


Вернуться в оглавление



Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.