
- •Создание простого конструктора
- •Представление о деструкторе
- •Что вам необходимо знать
- •Конструктор (программирование)
- •[Править]Назначение конструктора
- •[Править]Виды конструкторов
- •[Править]Конструктор по умолчанию
- •[Править]Конструктор копирования
- •[Править]Конструктор преобразования
- •[Править]Виртуальный конструктор
- •[Править]Синтаксис
- •[Править]Пример
- •[Править]ColdFusion [править]Пример
- •[Править]php [править]Пример
- •[Править]Упрощенные конструкторы (с псевдокодом)
[Править]Пример
В первом отрывке ниже определяется класс 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;
}
}