Составители:
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
- …
- следующая ›
- последняя »