Поля класса представляют собой данные, содержащиеся в классе, т.е. поля служат для хранения информации об объекте. Поле описывается как обычная переменная и может принадлежать любому типу.
Согласно принятому обозначению в 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).
Методы получения (чтения) и установки (записи) значений свойств подчиняются определенным правилам. Метод чтения свойства – это всегда функция, возвращающая значение того же типа, что и тип свойства. Метод записи свойства – это обязательно процедура, принимающая параметр того же типа, что и тип свойства. В остальных отношениях это обычные методы объекта.