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