exponenta event banner

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

Компоновочные блоки класса

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

Дополнительные сведения см. в разделе Определение классов перечисления.

Связанная информация

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