Понятие объекта и класса, инкапсуляции, наследования и полиморфизма


Объект — это переменная структурированного типа данных, включающая, как элементы данных, так и операции с этими элементами, упакованными вместе для удобства использования. Объединение данных и кода в одну конструкцию называется инкапсуляцией (encapsulation).

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

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

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

Особенности полей
Могут быть объявлены поля различных типов, которым при создании объекта или в процессе работы программы присваиваются конкретные значения. Комбинация значений всех полей объекта определяет состояние этого объекта. Изменение значения поля изменяет и состояние объекта. Поэтому значения полей уникальны для каждого экземпляра класса (объекта), хотя и может быть несколько объектов с полностью идентичными значениями полей.

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

Особенности методов
Как источник действий, объект использует набор методов, т.е. подпрограмм, разработанных для операций с полями. Все методы совместно опре-деляют поведение объекта. Адреса вызова некоторых методов объекта определяются на этапе компиляции программы, а других — с помощью специальной таблицы, создаваемой после инициализации программы. Каждый объект содержит указатель на такую специальную таблицу, содержащую информацию, необходимую для вызова метода. Эта таблица является принадлежностью класса и для нее выделяется память. Таким образом, методы у объектов одного класса общие.

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

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


Комментарии запрещены.




Статистика