exponenta event banner

Определяемые пользователем классы

Что такое определение класса?

Определение класса MATLAB ® - это шаблон, целью которого является предоставление описания всех элементов, общих для всех экземпляров класса. Члены класса - это свойства, методы и события, определяющие класс.

Определите классы MATLAB в кодовых блоках с подблоками, определяющими различные элементы класса. Сведения о синтаксисе этих блоков см. в разделе Компоненты класса.

Атрибуты для членов класса

Атрибуты изменяют поведение классов и членов, определенных в блоке определения класса. Например, можно указать, что методы являются статическими или что свойства являются частными. Следующие разделы описывают эти атрибуты.

Определения классов могут предоставлять информацию, такую как отношения наследования или имена членов класса без фактического построения класса. См. раздел Метаданные класса.

Дополнительные сведения о синтаксисе атрибутов см. в разделе Указание атрибутов.

Виды классов

Существует два вида классов MATLAB - классы дескрипторов и классы значений.

  • Классы значений представляют независимые значения. Объекты значений содержат данные объекта и не используют эти данные совместно с копиями объекта. Числовые типы MATLAB являются классами значений. Объекты значений, передаваемые и изменяемые функциями, должны возвращать изменяемый объект вызывающему абоненту.

  • Классы дескрипторов создают объекты, ссылающиеся на данные объекта. Копии переменной экземпляра ссылаются на один и тот же объект. Обработка объектов, переданных и измененных функциями, влияет на объект в рабочей области вызывающего абонента без возврата объекта.

Дополнительные сведения см. в разделе Сравнение классов дескрипторов и значений.

Построение объектов

Сведения о конструкторах классов см. в разделе Методы конструкторов классов.

Сведения о создании массивов объектов см. в разделе Создание массивов объектов.

Иерархии классов

Дополнительные сведения об определении иерархий классов см. в разделе Иерархии классов - концепции.

Синтаксис classdef

Определения классов - это блоки кода, которые определяются 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 мог создавать объекты по умолчанию. Дополнительные сведения см. в разделе Требование к конструктору входных аргументов.

Дополнительные сведения о компонентах определения класса см. в разделе Компоненты класса.

Связанные темы