К содержанию

Поля, свойства и методы класса

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

Согласно принятому обозначению в Delphi имена полей должно начинаться с буквы F (Field – поле), а имена классов с буквы T.

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

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

Описание свойства начинается со слова property, при этом типы свойства и соответствующего поля должны совпадать.

Метод представляет собой подпрограмму (процедуру или функцию), предназначенную для обработки полей.

Описание методов похоже на описание обычной подпрограммы модуля. Заголовок метода располагается в описании класса, а сам код метода находится в разделе реализации. Имя метода в разделе реализации является составным и включает в себя тип класса.

Метод, объявленный в классе, может вызываться различными способами, что зависит от вида этого метода. Вид метода определяется модификатором, который указывается в описании класса после заголовка метода и отделяется от заголовка точкой с запятой: virtual (виртуальный метод); dynamic (динамический метод) и др.

По умолчанию все методы, объявленные в классе, являются статическими и вызываются как обычные подпрограммы.

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

Помимо полей и методов в объектах существуют свойства. При работе с объектом свойства выглядят как поля: они принимают значения и участвуют в выражениях. Но в отличие от полей свойства не занимают места в памяти (адреса в памяти), а операции их чтения и записи ассоциируются с обычными полями или методами.

Объявление свойства выполняется с помощью зарезервированного слова property, например:

type

TMatematica = class

Fx1:Integer;

Fx2:Integer;

function slogenie:integer;

property x1:Integer read Fx1 write Fx2;

end;

Ключевые слова read и write называются спецификаторами доступа. После слова read указывается поле или метод, к которому происходит обращение при чтении (получении) значения свойства, а после слова write – поле или метод, к которому происходит обращение при записи (установке) значения свойства. Например, чтение свойства x1 означает чтение поля Fx1, а запись свойства x1 – чтение поля Fx2. Чтобы имена свойств не совпадали с именами полей, последние принято писать с буквы F (от англ. field).

Обращение к свойствам выглядит в программе как обращение к полям:

math. x1:= 10;

Если один из спецификаторов доступа опущен, то значение свойства можно либо только читать (задан спецификатор read), либо только записывать (задан спецификатор write).

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

Добавить комментарий

Частые вопросы

Чем страница «Поля, свойства и методы класса» отличается от главной Языки программирования Pascal и Delphi?

Это отдельная карточка или рубрика, а не дубль главной. Канонический адрес — текущий URL без www и с https.

Стоит ли покупать «Поля, свойства и методы класса» только по этому тексту?

Нет. Текст помогает сравнить варианты, но финальный выбор зависит от вашего сценария, бюджета и актуальной оферты продавца.

Есть ли смысл читать FAQ, если уже есть рейтинг?

Да. FAQ отвечает на типовые вопросы выбора, рейтинг — на сравнение позиций. Это разные блоки одной страницы.

Что это за материал «Поля, свойства и методы класса»?

Это редакционный разбор на Языки программирования Pascal и Delphi: коротко, кому подходит тема, какие критерии сравнения важны и где проверить актуальные условия у поставщика.