Компоненты класса

Стандартные блоки класса

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 ключевое слово.

properties (PropertyAttributes)
   PropertyName size class {validators} = DefaultValue
end

Например, этот класс задает частную собственность Prop1 из типа double со значением по умолчанию.

classdef MyClass
   properties (SetAccess = private)
      Prop1 double = 12
   end
   ...
end

См. Определение Свойства для получения дополнительной информации.

Блок методов

methods блок содержит функциональные определения для методов класса. Используйте отдельный блок для каждого уникального набора спецификаций атрибута. Каждый блок методов запускается с methods ключевое слово и завершает работу с end ключевое слово.

methods (MethodAttributes)
   function obj = MethodName(arg1,...)
         ...
   end

Например, этот класс задает защищенный метод MyMethod.

classdef MyClass
   methods (Access = protected)
      function obj = myMethod(obj,arg1)
         ...
      end
   end
end

Смотрите Задают Методы класса и Функции для получения дополнительной информации.

MATLAB отличается от языков как C++ и Java® в том специальном скрытом объекте класса передается всем методам. Необходимо передать объект класса явным образом к методу.

Используя MyClass пример, вызовите MyMethod использование объекта obj из класса и или функциональный или точечный синтаксис:

obj = MyClass;
r = MyMethod(obj,arg1);
r = obj.MyMethod(arg1);

Для получения дополнительной информации смотрите Вызов метода.

Блок Событий

events блок (один для каждого уникального набора спецификаций атрибута) содержит имена событий, которые объявляет этот класс. events блокируйтесь запускается с events ключевое слово и завершает работу с end ключевое слово.

classdef ClassName
   events (EventAttributes)
      EventName
   end
   ...
end

Например, этот класс задал событие под названием StateChange с ListenAccess установите на protected.

classdef EventSource
   events (ListenAccess = protected)
      StateChanged
   end
   ...
end

См. События для получения дополнительной информации.

Спецификация атрибута

Приписывание синтаксиса

Атрибуты изменяют поведение классов и компонентов класса (свойства, методы и события). Атрибуты позволяют вам задать полезные поведения, не пишущий сложный код. Например, можно создать свойство только для чтения путем установки его SetAccess припишите частному, но уезжающему его GetAccess припишите набор общественности.

properties (SetAccess = private)
   ScreenSize = getScreenSize
end

Все блоки определения класса (classdefсвойстваМетоды, и events) поддержите определенные атрибуты. Все атрибуты имеют значения по умолчанию. Задайте значения атрибута только в случаях, где вы хотите измениться от значения по умолчанию.

Примечание

Задайте значение конкретного атрибута только однажды в любом блоке компонента.

Приписывание описаний

Для списков поддерживаемых атрибутов см.:

Значения атрибута

Когда вы задаете значения атрибута, те значения влияют на все компоненты, заданные в блоке определения. Определение свойств с различными настройками атрибута требует нескольких блоков свойств. Задайте несколько атрибутов в списке, разделенном запятыми.

properties (SetObservable = true) 
   AccountBalance
end

properties (SetAccess = private, Hidden = true)
   SSNumber
   CreditCardNumber
end

Более простой синтаксис для trueложь Атрибуты

Можно использовать более простой синтаксис для атрибутов, значениями которых является true или false. Одно только название атрибута подразумевает верный и добавляющий, что не оператор (~) к имени подразумевает ложь. Например, эти два способа задать статические методы блокируются, эквивалентны.

methods (Static)
   ...
end

methods (Static = true)
   ...
end

Точно так же эти три способа задать непомехи, которые блокируют методы, эквивалентны. Все атрибуты, которые принимают логическое значение, имеют значение по умолчанию false, таким образом, можно не использовать атрибут, чтобы получить поведение по умолчанию.

methods
   ...
end

methods (~Static)
   ...
end

methods (Static = false)
   ...
end

Классы перечисления

Классы перечисления являются специализированными классами, которые задают фиксированный набор имен, представляющих один тип значения. Классы перечисления используют enumeration блокируйтесь, который содержит члены перечисления, заданные классом.

Блок перечисления запускается с enumeration ключевое слово и завершает работу с end ключевое слово.

classdef ClassName < SuperClass
   enumeration
      EnumerationMember
   end
   ...
end

Например, этот класс задает два члена перечисления, которые представляют логические значения false и true.

classdef Boolean < logical
   enumeration
      No  (0)
      Yes (1)
   end
end

Смотрите Задают Классы Перечисления для получения дополнительной информации.

Сопутствующая информация

Создание простого класса

Папки, содержащие определения классов