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