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