C#での静的メソッドと非静的メソッド
メンバー関数を静的として宣言します。このような関数は静的変数にのみアクセスできます。静的関数は、オブジェクトが作成される前でも存在します。
静的クラスはインスタンス化できず、静的メンバーのみを含めることができます。
静的メソッドは静的キーワード-
を使用して設定されますpublic static int getNum() { return num; }
次の例は、静的メソッドと非静的メソッドの使用法を示しています-
例
using System; namespace StaticVarApplication { class StaticVar { public static int num; public void count() { num++; } public static int getNum() { return num; } } class StaticTester { static void Main(string[] args) { StaticVar s = new StaticVar(); s.count(); s.count(); s.count(); s.count(); s.count(); s.count(); Console.WriteLine("Variable num: {0}", StaticVar.getNum()); Console.ReadKey(); } } }
-
Javaでの静的バインディングと動的バインディング
はい!コンパイラは、メソッドの実行に使用するオブジェクトを知っている場合、参照をオブジェクトに静的にバインドできます。たとえば、静的変数、プライベート変数、final変数は静的バインディングを使用しています。一方、オブジェクトの識別が実行時に行われる場合は、動的バインディングが使用されます。メソッドのオーバーライドは動的バインディングの場合です。 一方、メソッドのオーバーロードは静的バインディングの場合です。
-
Pythonのクラスメソッドと静的メソッド
Pythonのクラスメソッドはメソッドであり、クラスにバインドされていますが、そのクラスのオブジェクトにはバインドされていません。静的メソッドも同じですが、いくつかの基本的な違いがあります。クラスメソッドの場合は@classmethodデコレータを指定する必要があり、静的メソッドの場合は@staticmethodデコレータが使用されます。 クラスメソッドの構文。 class my_class: @classmethod deffunction_name(cls, arguments): #Function Body return value 静的メソッ