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