Hauptinhalt

Statische Methoden

Was sind statische Methoden?

Statische Methoden sind mit einer Klasse verbunden, jedoch nicht mit bestimmten Instanzen dieser Klasse. Diese Methoden erfordern kein Objekt der Klasse als Eingabeargument. Daher können Sie statische Methoden aufrufen, ohne ein Objekt der Klasse zu erstellen.

Warum statische Methoden definieren?

Statische Methoden sind nützlich, wenn Sie vor der Ausführung von Code keine Instanz der Klasse erstellen möchten. Angenommen, Sie möchten die MATLAB®-Umgebung einrichten oder die statische Methode verwenden, um Daten zu berechnen, die zum Erstellen von Klasseninstanzen erforderlich sind.

Angenommen, eine Klasse benötigt einen Wert für Pi, der mit bestimmten Toleranzen berechnet wurde. Die Klasse könnte ihre eigene Version der integrierten Funktion pi für die Verwendung innerhalb der Klasse definieren. Dieser Ansatz bewahrt die Kapselung der internen Funktionsweise der Klasse, erfordert jedoch keine Instanz der Klasse, um einen Wert zurückzugeben.

Definieren statischer Methoden

Um eine Methode als statisch zu definieren, setzen Sie das Attribut des Methodenblocks Static auf true. Beispiel:

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

Aufrufen statischer Methoden

Rufen Sie statische Methoden auf, indem Sie den Namen der Klasse gefolgt von einem Punkt (.) und anschließend den Namen der Methode verwenden:

classname.staticMethodName(args,...)

Um die Methode pi von MyClass aus dem vorherigen Abschnitt aufzurufen, wäre folgende Anweisung erforderlich:

value = MyClass.pi(.001);

Sie können statische Methoden auch wie jede andere Methode über eine Instanz der Klasse aufrufen:

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

Vererben statischer Methoden

Unterklassen können statische Methoden neu definieren, es sei denn, das Attribut Sealed der Methode ist in der Oberklasse ebenfalls auf true gesetzt.

Siehe auch

Themen