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

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

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

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

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

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

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

Примечание

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

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

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

The 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 папка)

Дополнительные сведения о папках классов см. в разделе Папки, содержащие определения классов.

Похожие темы