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