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

Переменные



Переменные

В языке Смолток существует пять типов переменных:

  • временные переменные (temporary variable);
  • переменные экземпляра (instance variable);
  • переменные класса (class variable);
  • глобальные переменные (global variable);
  • общие переменные (pool variable).
  • Все они различаются временем своего существования и областью действия.

    Временные переменные

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

    Например:

    | path speed time |

    path := 200.

    speed := 5.



    time := path/speed.

    ^time.

    Переменные экземпляра хранятся в памяти внутри каждого экземпляра. Ссылки на них допускаются только внутри данного экземпляра, и они существуют до тех пор, пока существует сам экземпляр.

    К переменным класса, глобальным и общим переменным имеется доступ более чем из одного объекта. Они зарегистрированы в общем словаре. Переменные классов регистрируются в словаре по имени class, глобальные переменные зарегистрированы в словаре по имени SmallTalk (или Смолток), общие переменные зарегистрированы в словарях, объявляемых специальным образом.

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

    SmallTalk at: #<name> put: nil

    (Смолток вПозиции: #<имя> разместить: nil)

    Имя глобальной переменной начинается с прописной буквы. Символ "#" используется в языке для определения системного имени.

    Значение глобальной переменной можно изменить, присвоив ей новое значение. Например, введем новую глобальную переменную NewVar:

    SmallTalk at: #NewVar put: nil.

    NewVar := 3.1415.

    Эти две строки можно заменить одной:

    SmallTalk at: #NewVar put: 3.1415

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

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

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

    Например:

    class name HUMAN

    superclass ANIMAL

    instance variable names SEX

    class variable names POPULATION

    shared pools BiologicalFacts -- общие переменные

    При таком объявлении словарь переменных BiologicalFacts будет общим для класса Human, и все переменные из словаря BiologicalFacts будут доступны по чтению и записи всем экземплярам класса Human.



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