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
Смотрите, Задайте Классы Перечисления для получения дополнительной информации.