Моделирование в системе MATLAB. Часть 1. Основы работы в MATLAB. Терёхин В.В. - 222 стр.

UptoLike

Составители: 

220
8.2 Вызов методов
При работе с объектами и методами MATLAB использует спе-
циальное множество правил, чтобы гарантировать вызов требуемой
функции. Если, по крайней мере, один из аргументов - объект,
MATLAB рассматривает список параметров слева направо, чтобы
определить их старшинство. (Для операторов равного старшинства
выбирается крайний левый.) Затем к нему применяются следующие
правила:
1. Если имя вызываемой
функции совпадает с именем встроен-
ной функции, то проверяется, существует ли переопределен-
ная версия этой функции для этого класса, а затем - для роди-
тельского. Если ни один из этих случаев не имеет место, вы-
дается ошибка.
2. Если имя функции совпадает с названием каталога классов,
проверяется, не является ли эта функция
конвертором и если
да, то вызывает ее. В противном случае вызывается конструк-
тор класса.
3. Если оба случая не подходят, то анализируются следующие
возможности:
если есть метод соответствующего типа, то вызывается он;
если есть метод родительского класса, то вызывается он;
если есть функция с таким именем в
пути доступа, то вызыва-
ется она;
генерируется ошибка.
Частные методы и функции. Каталоги классов могут иметь
связанные с ними частные каталоги. Такие каталоги могут содержать
как частные методы, которые работают с объектами данного класса,
так и частные функции, которые не работают с объектами, но выпол-
няют общие вычисления. Можно
устанавливать частный каталог под
каталогом класса точно также, как создается любой частный каталог,
то есть просто создать каталог, именуемый private, внутри каталога
@class_name.
Отладка методов. Можно использовать команды отладки для
методов точно так же, как они используются при работе с М-файлами.
Просто надо включить название каталога класса перед названием
ме-
тода. Например, dbstop class/method. Заметим, что при использова-
нии отладчика, заданная по умолчанию форма команды может видеть
частные функции и методы внутри каталога класса.
        8.2 Вызов методов


       При работе с объектами и методами MATLAB использует спе-
циальное множество правил, чтобы гарантировать вызов требуемой
функции. Если, по крайней мере, один из аргументов - объект,
MATLAB рассматривает список параметров слева направо, чтобы
определить их старшинство. (Для операторов равного старшинства
выбирается крайний левый.) Затем к нему применяются следующие
правила:
    1. Если имя вызываемой функции совпадает с именем встроен-
         ной функции, то проверяется, существует ли переопределен-
         ная версия этой функции для этого класса, а затем - для роди-
         тельского. Если ни один из этих случаев не имеет место, вы-
         дается ошибка.
    2. Если имя функции совпадает с названием каталога классов,
         проверяется, не является ли эта функция конвертором и если
         да, то вызывает ее. В противном случае вызывается конструк-
         тор класса.
    3. Если оба случая не подходят, то анализируются следующие
         возможности:
    • если есть метод соответствующего типа, то вызывается он;
    • если есть метод родительского класса, то вызывается он;
    • если есть функция с таким именем в пути доступа, то вызыва-
         ется она;
    • генерируется ошибка.
         Частные методы и функции. Каталоги классов могут иметь
связанные с ними частные каталоги. Такие каталоги могут содержать
как частные методы, которые работают с объектами данного класса,
так и частные функции, которые не работают с объектами, но выпол-
няют общие вычисления. Можно устанавливать частный каталог под
каталогом класса точно также, как создается любой частный каталог,
то есть просто создать каталог, именуемый private, внутри каталога
@class_name.

        Отладка методов. Можно использовать команды отладки для
методов точно так же, как они используются при работе с М-файлами.
Просто надо включить название каталога класса перед названием ме-
тода. Например, dbstop class/method. Заметим, что при использова-
нии отладчика, заданная по умолчанию форма команды может видеть
частные функции и методы внутри каталога класса.

220