MATLAB® организует код определения класса в модульные блоки, разграниченные ключевыми словами. Все ключевые слова имеют связанный оператор end:
classdef... конец — Определение всех компонентов класса
свойства... конец — Объявление имен свойства, спецификация атрибутов свойства, присвоение значений по умолчанию
методы... конец — Объявление сигнатур методов, атрибутов метода и функционального кода
события... конец — Объявление имени события и атрибутов
перечисление... конец — Объявление участников перечисления и перечислимых величин для классов перечисления.
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
Смотрите, Задайте Классы Перечисления для получения дополнительной информации.