Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
УРОК 23 1б 2 п.docx
Скачиваний:
3
Добавлен:
26.10.2018
Размер:
52.98 Кб
Скачать

[Править]Пример

В первом отрывке ниже определяется класс POINT. Процедура make кодируется после ключевого слова feature.

Ключевое слово create вводит список процедур, которые могут быть использованы для инициализации экземпляров класса. В данном случае список содержит default_create, процедуру с пустой реализацией, унаследованной из класса ANY, и процедуру make с реализацией в самом классе POINT.

class

POINT

create

default_create, make

feature

make (a_x_value: REAL; a_y_value: REAL)

do

x := a_x_value

y := a_y_value

end

x: REAL

-- Координата X

y: REAL

-- Координата Y

...

Во втором отрывке класс, являющийся клиентом класса POINT, имеет объявления my_point_1 и my_point_2 типа POINT.

В коде подпрограммы my_point_1 создаётся с координатами (0.0; 0.0). Поскольку в инструкции создания не указана процедура создания, используется процедура default_create, унаследованная из класса ANY. Эта же строка могла бы быть переписана как create my_point_1.default_create. Только процедуры, указанные как процедуры создания могут использоваться в инструкциях создания (то есть в инструкциях с ключевым словом create).

Следующей идёт инструкция создания для my_point_2, задающая начальные значения для координат my_point_2.

Третья инструкция осуществляет обычный вызов процедуры make для ре-инициализации экземпляра, прикреплянного к my_point_2, другими значениями.

my_point_1: POINT

my_point_2: POINT

...

create my_point_1

create my_point_2.make (3.0, 4.0)

my_point_2.make (5.0, 8.0)

...

[Править]ColdFusion [править]Пример

Необходимо отметить, что в ColdFusion не существует метода-конструктора. Широкое распространение среди сообщества программистов на ColdFusion получил способ вызова метода 'init', выступающего в качестве псевдоконструктора.

<cfcomponent displayname="Cheese">

<!--- свойства --->

<cfset variables.cheeseName = "" />

<!--- псевдоконструктор --->

<cffunction name="init" returntype="Cheese">

<cfargument name="cheeseName" type="string" required="true" />

<cfset variables.cheeseName = arguments.cheeseName />

<cfreturn this />

</cffunction>

</cfcomponent>

[Править]php [править]Пример

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

class Person

{

private $name;

function __construct($name)

{

$this->name = $name;

}

function getName()

{

return $this->name;

}

}

Тем не менее, конструктор в PHP версии 4 (и ранее) — метод класса с именем этого же класса.

class Person

{

private $name;

function Person($name)

{

$this->name = $name;

}

function getName()

{

return $this->name;

}

}