Main Content

静态方法

什么是静态方法

静态方法与类相关联,但不与该类的特定实例相关联。这些方法不需要类的对象作为输入参数。因此,您可以在不创建类对象的情况下调用静态方法。

为什么定义静态方法

当您不想在执行某些代码之前创建类的实例时,静态方法非常有用。例如,假设您要设置 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,...)

调用上一节中 MyClasspi 方法需要以下语句:

value = MyClass.pi(.001);

您也可以像调用其他任何方法一样,使用类的实例调用静态方法:

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

继承静态方法

子类可以重新定义静态方法,除非该方法的 Sealed 属性在超类中也设置为 true

相关主题