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 静的メソッ