Статические методы

Что такое статические методы

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

Почему задают статические методы

Статические методы полезны, когда вы не хотите создавать экземпляр класса прежде, чем выполнить некоторый код. Например, вы можете хотеть настроить среду MATLAB® или использовать статический метод вычислить данные, требуемые создать экземпляры класса.

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

Определение статических методов

Чтобы задать метод как статичный, установите атрибут блока Static методов на true. Например:

classdef MyClass
   ...
   methods(Static)
      function p = pi(tol)
         [n d] = rat(pi,tol);
         p = n/d;
      end
    end
end

Вызов статических методов

Вызовите статические методы с помощью имени класса, сопровождаемого точкой (.), затем имя метода:

classname.staticMethodName(args,...)

Вызов метода pi MyClass в предыдущем разделе потребовал бы этого оператора:

value = MyClass.pi(.001);

Можно также вызвать статические методы с помощью экземпляра класса, как любой метод:

obj = MyClass;
value = obj.pi(.001);

Наследование статических методов

Подклассы могут переопределить статические методы, если атрибут Sealed метода также не установлен в true в суперклассе.

Похожие темы

Была ли эта тема полезной?