Составители:
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
Страницы
- « первая
- ‹ предыдущая
- …
- 220
- 221
- 222
- 223
- 224
- …
- следующая ›
- последняя »
