Встроенные типы представляют фундаментальные виды данных, такие как числовые массивы, логические массивы и символьные массивы. Другие встроенные типы, такие как массивы ячеек и структуры, содержат данные, принадлежащие любому классу.
Встроенные типы определяют методы, которые выполняют операции с объектами этих классов. Например, можно выполнить операции с числовыми массивами, такими как, сортировка, арифметические и логические операции.
Смотрите Основные классы MATLAB для получения дополнительной информации о MATLAB® встроенные классы.
Примечание
Это ошибка - задать класс, имя которого совпадает со встроенным классом.
Можно подклассифицировать числовые классы MATLAB и logical
класс. Список числовых типов см. в разделе Числовые типы.
Вы не можете подклассифицировать любой класс, у которого есть Sealed
для атрибута задано значение true
. Чтобы определить, является ли класс Sealed
, запросить метаданные классов:
mc = ?ClassName; mc.Sealed
Значение 0
указывает, что класс не Sealed
и может быть подклассами.
Подкласс встроенного класса для расширения операций, которые можно выполнить для определенного класса данных. Например, когда вы хотите:
Для выполнения уникальных операций с данными класса.
Иметь возможность использовать методы встроенного класса и другие встроенные функции непосредственно с объектами подкласса. Например, вам не нужно повторять все математические операторы, если вы получают из класса, такого как double
который определяет эти операторы.
Рассмотрим класс, который задает перечисления. Он может быть выведен из целочисленного класса и наследовать методы, которые позволяют вам сравнивать и сортировать значения. Для примера целочисленные классы, такие как int32
поддержка всех реляционных методов (eq
, ge
, gt
, le
, lt
, ne
).
Чтобы увидеть список функций, которые подкласс унаследовал как методы, используйте methods
функция:
methods('SubclassName
')
Обычно можно использовать объект подкласса с любым:
Унаследованные методы
Функции, которые обычно принимают входные параметры того же класса, что и суперкласс.
Когда вы задаете подкласс встроенного класса, подкласс наследует все методы, заданные этим встроенным классом. MATLAB также предоставляет дополнительные методы подклассам встроенных классов, которые переопределяют несколько встроенных функций.
Встроенные функции и методы, которые работают на встроенных классах, могут вести себя по-разному при вызове с подклассами встроенных классов. Их поведение зависит от того, какую функцию вы используете и задает ли ваш подкласс свойства.
Когда вы вызываете унаследованный метод для подкласса встроенного класса, результат зависит от характера операции, выполненной методом. Поведение этих методов соответствует нескольким категориям.
Операции со значениями данных возвращают объекты суперкласса. Для примера, если вы подкласс double
и выполните сложение для двух объектов подкласса, MATLAB добавляет числовые значения и возвращает значение класса double
.
Операции с ориентацией или структурой объектов возврата данных подкласса. Методы, которые выполняют эти виды операций, включают, reshape
, permute
, transpose
и так далее.
Преобразование объекта подкласса во встроенный класс возвращает объект указанного класса. Функции, такие как uint32
, double
, char
работать с объектами подкласса так же, как и со встроенными объектами.
Сравнение объектов или тестирование на включение в определенный набор возвращает логические или встроенные объекты, в зависимости от функции. Функции, такие как isequal
, ischar
, isobject
работать с объектами подкласса так же, как и с объектами суперкласса.
Выражения индексации возвращают объекты подкласса. Если подкласс определяет свойства, индексация по умолчанию больше не работает. Подкласс должен определять свои собственные методы индексирования.
Конкатенация возвращает объект подкласса. Если подкласс определяет свойства, то конкатенация по умолчанию больше не работает, и подкласс должен определять свои собственные методы конкатенации.
Чтобы перечислить встроенные функции, которые работают с подклассом встроенного класса, используйте methods
функция.
Когда подкласс встроенного класса задает свойства, MATLAB больше не поддерживает операции индексации и конкатенации. MATLAB не может использовать встроенные функции, обычно вызываемые для этих операций, поскольку свойства подкласса могут содержать любые данные.
Подкласс должен определять, что означают индексация и конкатенация для класса со свойствами. Если ваш подкласс нуждается в функциональности индексации и конкатенации, то подкласс должен реализовать соответствующие методы.
Для поддержки операций индексации подкласс должен реализовать следующие методы:
Чтобы поддержать конкатенацию, подкласс должен реализовать следующие методы: