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