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

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

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

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

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

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

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

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

properties, methods, events и 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

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

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

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