Компоненты класса

Стандартные блоки класса

MATLAB® организует код определения класса в модульные блоки, разграниченные ключевыми словами. Все ключевые слова имеют связанный end оператор:

  • classdef...end — Определение всех компонентов класса

  • properties...end — Объявление имен свойства, спецификация атрибутов свойства, присвоение значений по умолчанию

  • methods...end — Объявление сигнатур методов, атрибутов метода и функционального кода

  • events...end — Объявление имени события и атрибутов

  • enumeration...end — Объявление членов перечисления и перечислимых величин для классов перечисления.

propertiesМетодыСобытия, и enumeration ключевые слова только в classdef блок.

Блок определения класса

classdef блок содержит определение класса в файле, который запускается с classdef ключевое слово и завершает работу с end ключевое слово.

classdef (ClassAttributes) ClassName < SuperClass
   ...
end

Например, этот classdef задает класс под названием MyClass это разделяет на подклассы handle класс, но не может использоваться, чтобы вывести подклассы:

classdef (Sealed) MyClass < handle
   ...
end

Смотрите, Блок Classdef для большей информации о синтаксисе.

Блок свойств

properties блок (один для каждого уникального набора спецификаций атрибута) содержит определения свойства, включая дополнительные начальные значения. Блок свойств запускается с properties ключевое слово и завершает работу с end ключевое слово.

classdef ClassName
   properties (PropertyAttributes)
      ...
   end
   ...
end

Например, этот класс задает свойство под названием Prop1 это имеет частный доступ и имеет значение по умолчанию, равное выходу date функция.

classdef MyClass
   properties (SetAccess = private)
      Prop1 = date
   end
   ...
end

См. Определение Свойства для получения дополнительной информации.

Блок методов

methods блок (один для каждого уникального набора спецификаций атрибута) содержит функциональные определения для методов класса. Блок методов запускается с methods ключевое слово и завершает работу с end ключевое слово.

classdef ClassName
   methods (MethodAttributes)
      ...
   end
   ...
end

Например:

classdef MyClass
   methods (Access = private)
      function obj = myMethod(obj)
      ...
      end
   end
end

См. Методы и Функции для получения дополнительной информации.

Блок Событий

events блок (один для каждого уникального набора спецификаций атрибута) содержит имена событий, которые объявляет этот класс. Блок событий запускается с events ключевое слово и завершает работу с end ключевое слово.

classdef ClassName
   events (EventAttributes)
      EventName
   end
   ...
end

Например, этот класс задал событие под названием StateChange с ListenAccess установите на protected:

classdef EventSource
   events (ListenAccess = protected)
      StateChanged
   end
   ...
end

См. События и Прослушиватели для получения дополнительной информации.

Полный класс

Полное определение класса содержит любую комбинацию свойств, методов и блоков событий кода.

classdef (Sealed) MyClass < handle
   properties (SetAccess = private)
      Prop1 = datenum(date)
   end
   properties
      Prop2
   end
   methods
      function obj = MyClass(x)
         obj.Prop2 = x;
      end
   end
   methods (Access = {?MyOtherClass})
      function d = myMethod(obj)
         d = obj.Prop1 + x;
      end
   end
   events (ListenAccess = protected)
      StateChanged
   end
end

Классы перечисления

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

Блок перечисления запускается с enumeration ключевое слово и завершает работу с end ключевое слово.

classdef ClassName < SuperClass
   enumeration
      EnumerationMember
   end
   ...
end

Например, этот класс задает два члена перечисления, которые представляют логический false и true:

classdef Boolean < logical
   enumeration
      No  (0)
      Yes (1)
   end
end

Смотрите, Задайте Классы Перечисления для получения дополнительной информации.

Сопутствующая информация

Папки, содержащие определения классов