Пользовательские классы

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

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 мог создавать объекты по умолчанию. Для получения дополнительной информации смотрите Вызов Конструктора без Входного Аргумента.

Для получения дополнительной информации о компонентах определения класса см. Раздел «Компоненты класса»

Похожие темы