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

Классы Базовых блоков

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

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

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

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

  • events...end - Декларация имени и атрибутов события

  • enumeration...end - Декларация представителей перечисления и значений перечисления для классов перечисления.

properties, methods, events, и enumeration являются ключевыми словами только в classdef блок.

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

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

classdef (ClassAttributes) ClassName < SuperClass
   ...
end

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

classdef (Sealed) MyClass < handle
   ...
end

Смотрите, Classdef Block для получения дополнительной синтаксической информации.

Блок свойств

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

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

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

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

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

Методы блокируют

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

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

Для примера:

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

Для получения дополнительной информации см. раздел «Определение методов и функций классов».

Блок событий

The 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

Для получения дополнительной информации см. раздел «Определение классов перечисления».

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

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