Main Content

Métodos estáticos

¿Qué son los métodos estáticos?

Los métodos estáticos están asociados a una clase, pero no a instancias específicas de esa clase. Estos métodos no requieren un objeto de la clase como argumento de entrada. Por lo tanto, puede llamar a métodos estáticos sin crear un objeto de la clase.

Motivos para definir métodos estáticos

Los métodos estáticos son útiles cuando no desea crear una instancia de la clase antes de ejecutar código. Por ejemplo, suponga que desea configurar el entorno de MATLAB® o utilizar el método estático para calcular los datos necesarios para crear instancias de clase.

Suponga que una clase necesita un valor de pi calculado con determinadas tolerancias. La clase podría definir una versión propia de la función pi integrada para su uso dentro de la clase. Este método mantiene la encapsulación del funcionamiento interno de la clase, pero no requiere una instancia de la clase para devolver un valor.

Definir métodos estáticos

Para definir un método como estático, establezca el atributo Static de bloque de método en true. Por ejemplo:

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

Llamar a métodos estáticos

Invoque métodos estáticos utilizando el nombre de la clase seguido por un punto (.) y por el nombre del método:

classname.staticMethodName(args,...)

Para llamar al método pi de MyClass de la sección anterior, se necesitaría esta instrucción:

value = MyClass.pi(.001);

También puede invocar métodos estáticos utilizando una instancia de la clase, como cualquier método:

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

Heredar métodos estáticos

Las subclases pueden redefinir métodos estáticos, a menos que el atributo Sealed del método también esté establecido en true en la superclase.

Temas relacionados