Статические методы связаны с классом, но не с определенными экземплярами этого класса. Эти методы не требуют объекта класса в качестве входного аргумента. Поэтому можно вызывать статические методы без создания объекта класса.
Статические методы полезны, если не требуется создавать экземпляр класса перед выполнением некоторого кода. Например, предположим, что требуется настроить среду MATLAB ® или использовать статический метод для вычисления данных, необходимых для создания экземпляров класса.
Предположим, что классу необходимо значение pi, рассчитанное для определенных допусков. Класс может определить собственную версию встроенного 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 в суперклассе.