Первый сайт на Perl



              

Вызов метода



Вызов метода

Существуют две синтаксические формы вызова как методов класса, так и методов объекта.

Первая форма имеет вид:

method class_or_object, parameters

например,

$somebody = new Staff, {"имя"=>"Анна"}; # метод класса

showdata $somebody, "имя","фамилия"; # метод объекта

showdata {"имя"=>"Мария","возраст"=>18}; # метод объекта

showdata new Staff "возраст"; # метод объекта

showdata setdata hew Staff, {"имя"=>"Глеб"}, "имя"; # метод объекта

Данная форма представляет собой обычный вызов функции, который может быть вложенным в другой вызов. Первым аргументом функции является ссылка (для методов объекта) или/им^Гпакета (для методов класса).

В приведенном примере первая строка содержит вызов конструктора new, в котором первым (и единственным) аргументом является имя пакета.

Вторая строка содержит вызов метода объекта, в котором первым аргументом является объект-ссылка.

В третьей строке первый аргумент задается при помощи блока {}, возвращающего ссылку на анонимный хеш-массив. Данный хеш-массив не будет объектом, так как он не объявлен объектом класса staff при помощи функции bless о, но синтаксически такая конструкция возможна.

В четвертой строке метод объекта вызывается с двумя аргументами. Первым аргументом является ссылка, возвращаемая конструктором new (), вторым — строка "возраст".

В пятой строке конструктор new создает объект, который передается в качестве первого аргумента методу setdata. Вторым аргументом метода setdata является ссылка на анонимный хеш-массив {"имя"=>"Глеб"). Метод showdata в качестве первого аргумента использует ссылку, возвращаемую методом setdata, а в качестве второго аргумента — строку "имя".

Вторая форма обращения к методу имеет вид

class_or_obj ect ->method(parameters)

Например, предыдущие вызовы могут быть записаны также в виде:

$somebody = Staff->new(("имя"=>"Анна"});




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