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