Определение класса MATLAB® является шаблоном, цель которого состоит в том, чтобы предоставить описание всех элементов, которые характерны для всех экземпляров класса. Члены класса являются свойствами, методами и событиями, которые задают класс.
Задайте классы MATLAB в блоках кода с подблоками, формирующими рисунок определений различных членов класса. Дополнительные сведения об этих блоках см. в Компонентах Класса.
Атрибуты изменяют поведение классов и членов, заданных в блоке определения класса. Например, можно указать, что методы являются статическими или что свойства являются частными. Следующие разделы описывают эти атрибуты:
Определения классов могут предоставить информацию, такую как отношения наследования или имена членов класса, на самом деле не создавая класс. См. Метаданные классов.
Смотрите Атрибуты Определения для больше на синтаксисе атрибута.
Существует два вида классов MATLAB — классы значения и классы Handle.
Классы значения представляют независимые значения. Объекты значения содержат данные объектов и не совместно используют эти данные с копиями объекта. MATLAB числовые типы является классами значения. Объекты значений передали и изменили функциями, должен возвратить модифицированный объект в вызывающую сторону.
Классы Handle создают объекты та ссылка данные объектов. Копии переменной экземпляра относятся к тому же объекту. Обработайте объекты, передал и изменил функциями, влияют на объект в рабочей области вызывающей стороны, не возвращая объект.
Для получения дополнительной информации смотрите Сравнение Классов Указателя и Значения.
Для получения информации о конструкторах класса см. Методы Конструктора класса.
Для получения информации о создании массивов объектов смотрите Построение массивов объектов.
Для получения дополнительной информации о том, как задать иерархии классов, смотрите Иерархии Классов — Концепции.
Определения классов являются блоками кода, которые очерчены classdef
ключевое слово вначале и end
ключевое слово в конце. Файлы могут содержать только одно определение класса.
Следующая схема показывает синтаксис classdef
блок. Только комментарии и пустые строки могут предшествовать classdef
ключевое слово.
Вот простое определение класса с одним свойством и методом конструктора, который устанавливает значение свойства, когда существует предоставленный входной параметр.
classdef MyClass properties Prop end methods function obj = MyClass(val) if nargin > 0 obj.Prop = val; end end end end
Создать объект MyClass
, сохраните определение класса в .m
файл, имеющий то же имя как класс и вызов конструктор с любыми необходимыми аргументами:
d = datestr(now); o = MyClass(d);
Используйте запись через точку, чтобы получить доступ к значению свойства:
o.Prop
ans = 10-Nov-2005 10:38:14
Конструктор не должен поддерживать синтаксис аргумента, таким образом, MATLAB может создать объекты по умолчанию. Для получения дополнительной информации см. Вызов конструктора без входного аргумента.
Для получения дополнительной информации о компонентах определения класса смотрите Компоненты Класса