|
Определить класс
объекта или создать объект |
Синтаксис:
str = class('<имя_объекта>')
obj = class(S, '<имя_класса>')
obj = class(S, '<имя_класса>', <родитель1>,
<родитель2> …)
Описание:
Функция str = class('<имя_объекта>') возвращает
строку, содержащую имя класса, соответствующего
следующей таблице
Имя класса |
Класс объектов |
Double |
Многомерные массивы чисел в
арифметике с плавающей точкой в формате
удвоенной точности. |
Sparse |
Двумерные действительные или
комплексные разреженные матрицы |
Char |
Массивы символов |
Struct |
Массивы записей (структура) |
Cell |
Массивы ячеек |
'<имя_класса>' |
Класс, определяемый
пользователем |
Функция obj = class(S, '<имя_класса>') создает
объект класса с указанным именем, используя
структуру S в качестве шаблона. Это относится
только к М-функциям с именем имя_класса.m,
размещенным в каталоге @имя_класса.
Функция obj = class(S, '<имя_класса>', <родитель1>,
<родитель2> …) создает объект класса с
указанным именем, используя структуру S в
качестве шаблона, а также гарантирует, что вновь
создаваемый объект наследует методы и поля
родительских объектов, указанных в качестве
аргументов.
Сопутствующие операторы: INERIORTO, ISA, SUPERIORTO.
|
Определить
принадлежность объекта к данному классу |
Синтаксис:
K =
class(obj, '<имя_класса>')
Описание:
Функция K = class(obj, '<имя_класса>') возвращает
логическое TRUE (1), если объект принадлежит данному
классу, и логическое FALSE (0) - в противном случае.
Аргумент '<имя_класса>' - это либо имя класса,
определенного пользователем, либо имя одного из
предопределенных классов системы MATLAB:
Имя класса |
Класс объектов |
Double |
Многомерные массивы чисел в
арифметике с плавающей точкой в формате
удвоенной точности. |
Sparse |
Двумерные действительные или
комплексные разреженные матрицы |
Char |
Массивы символов |
Struct |
Массивы записей (структура) |
Cell |
Массивы ячеек |
Пример.
Функция
isa(rand(3,
4), 'double')
истинна и возвращает значение
ans =
1
Сопутствующие операторы: CLASS.
|
Выявление объекта
некоторого класса |
Синтаксис:
k
= isobject(A)
Описание:
Функция k = isobject(A) возвращает логическое TRUE (1),
если A - объект некоторого класса, и логическое FALSE
(0) - в противном случае.
Сопутствующие операторы: операторы группы
IS*.
|
Вывести на терминал
список методов для данного класса |
Синтаксис:
methods
<имя_класса>
s = methods(
'<имя_класса>')
Описание:
Команда methods <имя_класса> выводит на терминал
список методов для данного класса.
Функция s = methods('<имя_класса>') возвращает
массив ячеек, содержащих имена методов в виде
строковых величин.
Пример.
Команда methods polynom выводит на экран следующий
список методов для класса polynom:
methods
polynom
Methods for class
polynom:
Методы
для класса polynom:
char display
minus plot polynom roots
diff double
mtimes plus polyval
Функция s = methods('polynom') выводит на экран следующий
список методов для класса polynom в виде массива
ячеек символов:
s = methods(
'polynom')
s =
'polynom'
'mtimes'
'plus'
'plot'
'display'
'diff'
'char'
'roots'
'minus'
'double'
'polyval'
Сопутствующие операторы: HELP, WHAT, WHICH.
Синтаксис:
inferiorto('<имя_класса1>', '<имя_класса2>', …)
Описание:
Команда inferiorto('<имя_класса1>',
'<имя_класса2>', …), вызванная внутри
конструктора класса (например, myclass.m), определяет,
что метод myclass.m не должен вызываться, если
функция вызвана с объектом класса myclass и одним
или более объектов классов '<имя_класса1>',
'<имя_класса2>', ….
Пояснение.
Допустим, что A - это объект класса 'class_a', B - это
объект класса 'class_b' и C - это объект класса 'class_c'.
Допустим также, что конструктор class_c.m содержит
утверждение inferiorto('class_a'), что означает низший
приоритет класса 'class_c' по отношению к классу
'class_a'. Тогда при вызове функций e = fun(a, c) или e = fun(c,
a) вызывается функция class_a/fun.
Если функция вызывает 2 объекта, отношение
классов которых не определено, то оба объекта
имеют одинаковый приоритет и используется метод,
относящийся к первому объекту в списке
аргументов вызываемой функции. То есть, вызов fun(b,
c) использует метод class_b/fun, а вызов fun(с, b)
использует метод class_c/fun.
Сопутствующие операторы: SUPERIORTO
Синтаксис:
superiorto('<имя_класса1>',
'<имя_класса2>', …)
Описание:
Команда superiorto('<имя_класса1>',
'<имя_класса2>', …), вызванная внутри
конструктора класса (например, myclass.m), определяет,
что метод myclass.m должен быть вызван, если функция
вызвана с объектом класса myclass и одним или более
объектов классов '<имя_класса1>',
'<имя_класса2>', ….
Пояснение.
Допустим, что A - это объект класса 'class_a', B - это
объект класса 'class_b' и C - это объект класса 'class_c'.
Допустим также, что конструктор class_c.m содержит
утверждение superiorto('class_a'), что означает высший
приоритет класса 'class_c' по отношению к классу
'class_a'. Тогда при вызове функций e = fun(a, c) или e = fun(c,
a) вызывается функция class_c/fun.
Если функция вызывает 2 объекта, отношение
классов которых не определено, то оба объекта
имеют одинаковый приоритет и используется метод,
относящийся к первому объекту в списке
аргументов вызываемой функции. То есть, вызов fun(b,
c) использует метод class_b/fun, а вызов fun(c, b) - метод
class_c/fun.
Сопутствующие операторы: INFERIORTO.
|