Metodi statici
R2026bCosa sono i metodi statici
I metodi statici sono associati a una classe, ma non a specifiche istanze di tale classe. Questi metodi non richiedono un oggetto della classe come argomento di input. Pertanto, è possibile chiamare i metodi statici senza creare un oggetto della classe.
Ragioni per la definizione dei metodi statici
I metodi statici sono utili quando non si desidera creare un'istanza della classe prima di eseguire del codice. Ad esempio, si supponga di voler impostare l'ambiente MATLAB® oppure utilizzare il metodo statico per calcolare i dati necessari alla creazione di istanze della classe.
Si supponga che una classe abbia bisogno di un valore di pi greco calcolato con tolleranze specifiche. La classe potrebbe definire una propria versione della funzione integrata pi da utilizzare all'interno della classe. Questo approccio mantiene l'incapsulamento del funzionamento interno della classe, ma non richiede un'istanza della classe per restituire un valore.
Definizione dei metodi statici
Per definire un metodo come statico, impostare l'attributo Static del blocco Methods su true. Ad esempio:
classdef MyClass methods(Static) function p = pi(tol) [n d] = rat(pi,tol); p = n/d; end end end
Chiamata dei metodi statici
Chiamare i metodi statici utilizzando il nome della classe seguito dal punto (.), quindi dal nome del metodo:
classname.staticMethodName(args,...)
Per chiamare il metodo pi di MyClass nella sezione precedente, sarebbe necessaria questa dichiarazione:
value = MyClass.pi(.001);
È inoltre possibile chiamare i metodi statici utilizzando un'istanza della classe, proprio come qualsiasi altro metodo:
obj = MyClass; value = obj.pi(.001);
Eredità dei metodi statici
Le sottoclassi possono ridefinire i metodi statici a meno che l'attributo Sealed del metodo non sia impostato anch'esso su true nella superclasse.