Понятие объекта и класса, инкапсуляции, наследования и полиморфизма
Объект — это переменная структурированного типа данных, включающая, как элементы данных, так и операции с этими элементами, упакованными вместе для удобства использования. Объединение данных и кода в одну конструкцию называется инкапсуляцией (encapsulation).
Класс — это структурированный тип данных или объединяющая концепция (абстракция) набора объектов (экземпляров), имеющих общие характеристики. Класс определяет семантику — общий интерфейс с окружающим миром, посредством которого можно взаимодействовать с отдельными объектами. Все экземпляры одного класса аналогичны друг другу, поскольку они имеют одинаковый интерфейс.
Классы могут быть связаны друг с другом отношениями наследования (inheritance), с их помощью количество элементов данных и/или операций с ними может увеличиваться, а описания существующих классов многократно использоваться при описании новых. Наследование является одним из механизмов, посредством которого объекты одного класса могут включаться в работу объектов другого класса.
При определенных обстоятельствах объекты могут вызывать методы-операции не только их непосредственного класса, но и любого из классов-предков, таким образом поддерживается полиморфизм (polymorphism). Может существовать несколько версий какого-то метода и один и тот же вызов этого метода может использовать различные его версии.
Особенности полей
Могут быть объявлены поля различных типов, которым при создании объекта или в процессе работы программы присваиваются конкретные значения. Комбинация значений всех полей объекта определяет состояние этого объекта. Изменение значения поля изменяет и состояние объекта. Поэтому значения полей уникальны для каждого экземпляра класса (объекта), хотя и может быть несколько объектов с полностью идентичными значениями полей.
Объявляются поля данных внутри описания класса способом, аналогичным определению полей записей и похожим на объявление обычных переменных.
Особенности методов
Как источник действий, объект использует набор методов, т.е. подпрограмм, разработанных для операций с полями. Все методы совместно опре-деляют поведение объекта. Адреса вызова некоторых методов объекта определяются на этапе компиляции программы, а других — с помощью специальной таблицы, создаваемой после инициализации программы. Каждый объект содержит указатель на такую специальную таблицу, содержащую информацию, необходимую для вызова метода. Эта таблица является принадлежностью класса и для нее выделяется память. Таким образом, методы у объектов одного класса общие.
Свойства
Для обеспечения надежности нежелателен прямой доступ к полям объекта: чтение и изменение их содержимого должно производиться посредством вызова соответствующих методов. В объектах Delphi пользователь может быть полностью отгорожен от полей с помощью свойств, в то время как поля у записи не защищены и доступны для возможного неверного использования.
Таким образом, класс представляет собой описание того, как будет выглядеть и вести себя его представитель (экземпляр или объект).