Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
25
Добавлен:
13.03.2015
Размер:
254.46 Кб
Скачать

Методы и сообщения

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

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

Метод состоит из имени и тела, которое обеспечивает поведение, связанное с дан­ным именем метода. В объектно-ориентированных языках программирования тело состоит из блока программного кода, который и выполняет требуемые функции.

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

Классы

В языке Simula классы играют роль некого шаблона для определения набора подоб­ных объектов. Таким образом, объекты, которые имеют один и тот же набор атрибутов и отвечают на одни и те же сообщения, могут быть сгруппированы вместе с образованием класса. Атрибуты и связанные с ними методы определяются один раз для всего класса, а не отдельно для каждого объекта. Объекты некоторого класса называются его экземп­лярами (instance). Каждый экземпляр обладает своими собственными значениями каждо­го из атрибутов, но совместно с другими экземплярами данного класса использует для этих атрибутов одни и те же имена и методы.

В литературе термины "класс" и "тип" часто используются как синонимы, хотя неко­торые авторы указывают на различие между ними. Термин "тип" более соответствует по­нятию абстрактного типа данных. В языках программиро­вания переменная объявляется с указанием ее типа. Компилятор может использовать эту информацию для проверки выполняемых с переменной операций на совместимость с ее типом, что позволяет гарантировать корректность программного обеспечения. С другой стороны, класс является неким шаблоном для создания объектов и предоставляет мето­ды, которые могут применяться к этим объектам. Таким образом, понятие "класс" в большей степени относится ко времени исполнения, чем ко времени компиляции.

В некоторых объектно-ориентированных системах класс также является объектом и обладает своими собственными атрибутами и методами, которые называются атрибу­тами класса и методами класса соответственно. Атрибуты класса описывают общие характеристики этого класса, например средние или итоговые значения. Методы класса используются для изменения или опроса состояния атрибутов класса. Существуют также специальные методы класса для создания новых экземпляров клас­са и удаления ненужных экземпляров. В объектно-ориентированном языке новый эк­земпляр обычно создается с помощью команды new. Подобные методы создания и уда­ления экземпляров с высвобождением занятого ими пространства памяти называют конструкторами и деструкторами соответственно. Посылаемые методу класса сообще­ния посылаются классу, а не его экземплярам. При этом предполагается, что класс яв­ляется экземпляром класса более высокого уровня, который называется метаклассом.

Соседние файлы в папке Новые лекции