静的方法とは何ですか?

クラスで宣言されているが、そのクラスの特定のインスタンス化に依存しないオブジェクト指向のコンピュータープログラミング方法は、静的メソッドと呼ばれます。ほとんどのプログラミング言語には、メソッドを静的にするためのメソッドの宣言にキーワード static が含まれます。これらの方法は、そのクラスからインスタンス化されたオブジェクトには含まれていないクラスに厳密に属します。それらは頻繁にクラスの方法と呼ばれます Javaでは、これらのメソッドを参照するためにオブジェクト名を使用することは許可されていますが、それは強く落胆しています。オブジェクト名を使用する場合、コードを読んでいる人は、これらのメソッドのいずれかをインスタンスメソッドと混同する場合があります。

静的メソッドは、特定のクラスのインスタンス変数に依存しないユーティリティクラスでよく使用されます。また、プログラマーが必要な場合にも使用されますメソッドにアクセスしますが、それに含まれるクラスをインスタンス化する必要はありません。ユーティリティクラスは通常、オブジェクトにインスタンス化されていません。ユーティリティ方法がオブジェクト情報を変更する必要があることは珍しいでしょう。 pow()などのjava.lang.mathクラスのメソッドは、このタイプの方法がユーティリティクラスでどのように使用されるかの例です。

インスタンスメソッドは、インスタンス変数、静的変数、インスタンスメソッド、および静的メソッドに直接アクセスできます。静的メソッドは、インスタンス変数とインスタンスメソッドに直接アクセスできません。インスタンスメソッドの性質が静的メソッドよりもクラスメンバーへのアクセスが優れているため、インスタンスメソッドは通常のクラスで通常使用されるメソッドのタイプです。

静的方法の主要な欠点の1つは、多型が使用される継承中に発生します。親の静的方法が最終と宣言されていない限り、同じ子供静的方法は、子どものクラスでオーバーライドされているかのようにコーディングできます。これは、静的メソッドをオーバーライドできないため、オーバーライドする代わりに、技術的には隠すと呼ばれます。

非表示の場合、親の静的メソッドにクラス名を使用してアクセスする場合、親法が使用されます。オーバーライドされた子の静的法にオブジェクト名を使用してアクセスすると、オーバーライドされた子メソッドが使用されます。問題は、子オブジェクトが親としてアップキャストされるときに発生します。この場合、Upcast Child Static Methodへの呼び出しは、予想される子メソッドの代わりに親法を使用します。真の多型では、子どもの方法は、アップキャスト後に活性化された方法です。

他の言語

この記事は参考になりましたか? フィードバックをお寄せいただきありがとうございます フィードバックをお寄せいただきありがとうございます

どのように我々は助けることができます? どのように我々は助けることができます?