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
Дополнительные сведения см. в разделе Определение классов перечисления.