Обычные методы

Обычные методы работают с объектами

Обычные методы задают функции, которые работают с объектами класса. Поэтому один из входных параметров должен быть объектом или массивом объектов класса определения. Эти методы могут вычислить значения на основе данных объектов, могут перегрузить встроенные функции MATLAB® и могут вызвать другие методы и функции. Обычные методы могут возвратить измененные объекты.

Методы Внутри classdef Блок

Этот пример показывает определение метода (methodName) в блоках methods и classdef:

classdef ClassName
   methods (AttributeName = value,...)
      function methodName(obj,args)
         % method code
         ...
      end 
      ...
   end % end of method block
   ...
end 

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

Примечание

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

Пример метода

Метод addData добавляет значение в свойство Data объектов MyData. Функция mustBeNumeric ограничивает значение свойства Data к числовым значениям. Свойство имеет значение по умолчанию 0.

Метод addData возвращает измененный объект, который можно повторно присвоить той же переменной.

classdef MyData
   properties
      Data {mustBeNumeric} = 0
   end
   methods
      function obj = addData(obj,val)
         if isnumeric(val)
            newData = obj.Data + val;
            obj.Data = newData;
         end
      end
   end
end
a = MyData;
a = addData(a,75)
a = 

  MyData with properties:

    Data: 75

Вызывающие методы

Любой из следующих операторов является правильным синтаксисом для вызова метода, где obj является объектом класса, задающего метод methodName:

obj.methodName(arg)
methodName(obj,arg)

Файлы метода

Можно задать методы:

  • В блоке определения класса

  • В отдельном файле в папке класса (то есть, папке @ClassName)

Для получения дополнительной информации о папках класса смотрите, что Папки Содержат Определения классов.

Похожие темы