Новые книги

В книге рассмотрены основные аспекты работы над рекламным текстом. На основе главным образом отечественного опыта автор подробно и популярно объясняет, каким образом создаются эффективные рекламные тексты.

Книга рассчитана на читателей, по роду своей деятельности занимающихся рекламой в рекламных отделах компаний, средств массовой информации, в рекламных агентствах. Кроме того, книга представляет интерес для студентов и преподавателей дисциплин, связанных с рекламой.
Вы никогда не задумывались о том, что вся наша современная цивилизация, со всеми ее величайшими технологическими прорывами и товарно-услуговыми благами основана на… лени? С помощью обещания что-либо сделать за нас можно продать практически все, что угодно, если бы не одно НО. И это НО – обычный страх, единственный, способный победить лень и побудить нас сделать что-то, чего совсем не хочется и даже если ооооооочень лень! А это значит, что продать все и всем можно с помощью основных человеческих пороков – лени и страха.

Книга в первую очередь рекомендована маркетологам, специалистам по продажам, руководителям компаний и всем тем, у кого есть хоть одна фобия! Здесь вы найдете массу интересных и креативных примеров, взятых из жизни. Где-то от души посмеетесь, быть может, до корней волос похолодеете, но равнодушными, верим, точно не останетесь!

Вызов операций



5.4.3. Вызов операций

В языке Eiffel методы называются подпрограммами (routines). При вызове этих подпрограмм им передаются параметры, которые могут иметь простой тип (REAL, INTEGER, BOOLEAN, или CHARACTER) или быть объектами классов, определенных программистом. В подпрограмме не разрешается изменять значения формальных параметров путем присваивания им новых значений или применения к ним операции (такие, как Create, Clone, или Forget), которые могут менять значение объектной ссылки. В то же время остальные операции могут быть применены к объектам, являющимся формальными параметрами, что вызовет изменение состояния указанных объектов.

Синтаксис вызова операции в языке Eiffel такой же, как в языке C++, причем операция '.' языка Eiffel соответствует операции '->' языка C++:

	local
	  aShape: SHAPE;
	  dx, dy: REAL
	do
	  ...
	  aShape.move (dx, dy);
	end

В языке Eiffel определен неявный доступ к свойствам целевого объекта по имени соответствующего свойства. Идентификаторы x и y являются именами атрибутов целевого объекта SHAPE:

	move (deltax, deltay: REAL) is
	-- move a shape by delta
	do
	  x = x + deltax;
	  y = y + deltay
	end

В языке Eiffel имеется предопределенный идентификатор Current, который именует целевой объект операции (он аналогичен идентификаторам this языка C++ и self языка Smalltalk). Поэтому предыдущий фрагмент программы можно записать следующим эквивалентным образом:

	move (deltax, deltay: REAL) is
	-- move a shape by delta
	do
	  Current.x = Current.x + deltax;
	  Current.y = Current.y + deltay
	end

В языке Smalltalk все параметры и переменные являются объектами; все операции являются методами, связанными с этими объектами. Применить операцию к объекту - значит послать этому объекту сообщение, состоящее из имени операции и списка значений ее параметров. Сообщение связывается с объектом во время выполнения программы (динамически), рассматривается класс соответствующего объекта и находится соответствующая операция в этом классе или в его предках (по наследованию). Формальные параметры метода запрещено изменять внутри метода с помощью присваиваний. Синтаксис обращения к операции (посылки сообщения) следующий:

	aShape moveDelta: aPoint
	Этот метод можно реализовать следующим образом:
	class name Shape
	instance variables
	  x  y
	instance methods
	moveDelta: aPoint
	  x <- x + aPoint x
	  y <- y + aPoint y

Внутри метода разрешен непосредственный доступ по имени к атрибутам целевого объекта операции (в языке Smalltalk атрибуты называются переменными объекта (instance variables)).

Как уже упоминалось, в языке Smalltalk предопределена псевдо-переменная self, именующая целевой объект (получатель сообщения).

Назад | Содержание | Вперед