MATLAB® определение класса является шаблоном, цель которого - предоставить описание всех элементов, которые являются общими для всех образцов класса. Членами класса являются свойства, методы и события, которые определяют класс.
Задайте классы MATLAB в кодовых блоках с подблоками, описывающими определения различных членов класса. Синтаксические сведения об этих блоках см. в разделе «Компоненты класса».
Атрибуты изменяют поведение классов и представителей, заданные в блоке определения классов. Для примера можно задать, что методы являются статическими или что свойства являются частными. В следующих разделах описываются эти атрибуты:
Определения классов могут предоставлять информацию, такую как отношения наследования или имена членов класса без фактического построения класса. См. «Метаданные классов».
Дополнительные сведения о синтаксисе атрибутов см. в разделе Установка атрибутов.
Существует два вида классов MATLAB - классы handle и классы ценности.
Классы значений представляют независимые значения. Объекты значения содержат данные объекта и не делятся этими данными с копиями объекта. Числовые типы MATLAB являются классами значений. Значения объекты, переданные функциям и измененные ими, должны возвращать измененный объект вызывающему абоненту.
Классы Handle создают объекты, которые ссылаются на данные объекта. Копии переменной образца относятся к тому же объекту. Указатели объектов, переданные функциям и измененные ими, влияют на объект в рабочей области вызывающего абонента, не возвращая объект.
Для получения дополнительной информации смотрите Сравнение классов Handle и Value.
Для получения информации о конструкторах классов см. «Методы конструктора классов».
Для получения информации о создании массивов объектов см. раздел «Построение массивов объектов».
Дополнительные сведения о том, как задать иерархии классов, см. в разделе Иерархии классов - Концепции.
Определения классов являются блоками кода, которые разграничены 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 мог создавать объекты по умолчанию. Для получения дополнительной информации смотрите Вызов Конструктора без Входного Аргумента.
Для получения дополнительной информации о компонентах определения класса см. Раздел «Компоненты класса»