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

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

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

Задайте классы MATLAB в блоках кода с подблоками, формирующими рисунок определений различных членов класса. Дополнительные сведения об этих блоках см. в Компонентах Класса.

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

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

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

Смотрите Атрибуты Определения для больше на синтаксисе атрибута.

Виды классов

Существует два вида классов MATLAB — классы значения и классы Handle.

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

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

Для получения дополнительной информации смотрите Сравнение Классов Указателя и Значения.

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

Для получения информации о конструкторах класса см. Методы Конструктора класса.

Для получения информации о создании массивов объектов смотрите Построение массивов объектов.

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

Для получения дополнительной информации о том, как задать иерархии классов, смотрите Иерархии Классов — Концепции.

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

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

Похожие темы