Свойства класса

Блок свойств

Задайте свойства класса в properties блок:

classdef ClassName
   properties (PropertyAttributes)
      PropertyName size class {validation functions} = DefaultValue
   end
end

Атрибуты свойств применяются ко всем свойствам, заданным в блоке. Чтобы задать свойства с различными атрибутами, используйте несколько properties блоки. Все атрибуты свойств имеют значения по умолчанию. Список атрибутов свойств см. в разделе Атрибуты свойств.

Ограничьте размер, класс и другие аспекты значений, назначенных свойствам в определении свойства. Для получения дополнительной информации см. Раздел «Проверка значений свойств».

Опционально присвойте значения по умолчанию свойству в properties блок. MATLAB® оценивает оператор назначения при первой ссылке на класс или при загрузке сохраненного объекта. Для получения дополнительной информации см. раздел «Определение свойств».

Примечание

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

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

Свойства с различными атрибутами

Следующий класс задает три свойства. Model и Color используйте значения атрибутов по умолчанию, что приводит к общедоступному доступу для чтения и записи. SerialNumber имеет доступ пользователей объекта только для чтения. Назначьте SerialNumber значение свойства из функции члена класса, такой как конструктор или другой метод класса.

classdef NewCar
   properties
      Model
      Color
   end
   properties (SetAccess = private)
      SerialNumber
   end
   methods
   ...
   end
end

Доступ к значениям свойств

Используйте запись через точку для доступа к значению свойства.

A = NewCar
A = 

  NewCar with properties:

           Model: []
           Color: []
    SerialNumber: []

Установите Model и Color свойства:

A.Model = 'XGT7000';
A.Color = 'Red';

Добавьте конструктор к NewCar класс, чтобы задать значения свойств:

classdef NewCar
   properties
      Model
      Color
   end
   properties (SetAccess = private)
      SerialNumber
   end
   methods
      function obj = NewCar(model,color)
         obj.Model = model;
         obj.Color = color;
         obj.SerialNumber = datenum(datetime('now'));
      end
   end
end
A = NewCar('XGT7000','Red')
A = 

  NewCar with properties:

           Model: 'XGT7000'
           Color: 'Red'
    SerialNumber: 7.362456078531134e+05

Похожие темы