Объектно-ориентированное программирование.Язык Смолток

Основные понятия языка Смолток



Основные понятия языка Смолток

Ключевые понятия языка Смолток - объект, класс, сообщение и метод.

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

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

Для активизации метода объекту посылается сообщение

- аналог вызова процедур с данными в виде параметров в традиционных языках программирования процедурного типа.

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

Метод состоит из операций над своими переменными экземпляра и из посылок сообщений другим объектам. В конечном счете метод должен выдать ответ на посланное объекту сообщение.

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

Синтаксис языка чрезвычайно прост. В нем всего три оператора: посылка сообщения, выдача ответа и присваивание значения переменной.

Вся сложность программы определяется смыслом посланных сообщений, поэтому главный оператор Смолтока - посылка сообщения.

Синтаксис этого оператора напоминает предложение естественного языка (подлежащее – сказуемое - дополнение):

объектПолучатель имяСообщения [объектыАргументы]

Например:

а – 3                              объекту "а" посылается сообщение с именем "-" и аргументом 3;

5 factorial                       объекту 5 посылается сообщение с именем "factorial";

Table inPos: 5 locate: 7  объекту "Table" посылается сообщение с именем "inPos: locate:" и аргументами: 5 и 7.

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

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

Существует множество объектов, соответствующих спецификации одного и того же класса. Таким образом, в окружающем мире существуют объекты, называемые классами, а также объекты - экземпляры классов:



Чтобы создать объект, классу посылается сообщение о создании нового экземпляра. Класс создает экземпляр с присущей всем объектам этого класса структурой - набором переменных экземпляра. Если нужно, он их инициализирует и выдает созданный экземпляр в качестве ответа на сообщение.

Классы в Смолтоке организованы иерархически, в виде дерева. Каждый класс имеет одного предка, называемого суперклассом, и может иметь несколько потомков, называемых подклассами. Всякий класс наследует переменные экземпляра и методы своего суперкласса. Кроме того, он может содержать новые переменные экземпляра и методы, может переопределять унаследованные.

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


Содержание раздела