このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。
静的メソッドはクラスに関連しますが,そのクラスの特定のインスタンスには関連しません。これらのメソッドは入力引数としてクラスのオブジェクトを必要としません。そのため,そのクラスのオブジェクトを作成せずに静的メソッドを呼び出すことができます。
静的メソッドは,あるコードの実行前にクラスのインスタンスを作成するのが望ましくない場合に役立ちます。たとえば,MATLAB®環境をセットアップしたり,静的メソッドを使用してクラスのインスタンスの作成に必要なデータを計算するとします。
あるクラスが,特定の許容誤差で計算されたπの値を必要とするものとします。このクラスは,クラス内で使用するために,組み込み関数π
のクラス独自のものを定義できます。この手法は,クラスの内部動作をカプセル化された状態に保ちますが,クラスのインスタンスが値を返す必要はありません。
メソッドをスタティックとして定義するには,方法ブロックの静态
属性を真正的
に設定します。次に例を示します。
classdefMyClass方法(静态)函数P = pi(tol) [n d] =大鼠(pi,tol);p = n / d;结束结束结束
以下のように,クラスの名前,ドット(.
),メソッドの名前の順に指定して静的メソッドを起動します。
类名称.staticMethodName(args…)
前述の節のMyClass
のπ
メソッドを呼び出すときには,次のステートメントが必要です。
值= MyClass.pi(措施);
静的メソッドは,他のメソッドの場合のように,クラスのインスタンスを使用して呼び出すこともできます。
obj = MyClass;值= obj.pi(措施);
メソッドの密封
属性が,スーパークラスにおいても真正的
に設定されている場合を除いて,サブクラスは静的メソッドを再定義できます。