Javaのクラス変数と静的変数
クラス変数は静的変数とも呼ばれ、キーワード「static」を使用してメソッドの外部で宣言されます。
静的変数は、クラスのすべてのインスタンスに共通する変数です。変数の単一のコピーがすべてのオブジェクト間で共有されます。
例
public class Demo{ static int my_count=2; public void increment(){ my_count++; } public static void main(String args[]){ Demo obj_1=new Demo(); Demo obj_2=new Demo(); obj_1.increment(); obj_2.increment(); System.out.println("The count of first object is "+obj_1.my_count); System.out.println("The count of second object is "+obj_2.my_count); } }
出力
The count of first object is 4 The count of second object is 4
Demoという名前のクラスは静的変数を定義し、静的変数の値をインクリメントする「increment」という名前の関数を定義します。 main関数はクラスの2つのインスタンスを作成し、incrementfunctionは両方のオブジェクトで呼び出されます。カウントが画面に印刷されます。静的変数がオブジェクト間で共有されていることを示しています。
-
Javaでの静的バインディングと動的バインディング
はい!コンパイラは、メソッドの実行に使用するオブジェクトを知っている場合、参照をオブジェクトに静的にバインドできます。たとえば、静的変数、プライベート変数、final変数は静的バインディングを使用しています。一方、オブジェクトの識別が実行時に行われる場合は、動的バインディングが使用されます。メソッドのオーバーライドは動的バインディングの場合です。 一方、メソッドのオーバーロードは静的バインディングの場合です。
-
Pythonのクラス変数または静的変数?
クラス内でメソッドの外部で変数を宣言すると、pythonではクラスまたは静的変数として呼び出されます。クラスまたは静的変数はクラスを介して参照できますが、インスタンスを介して直接参照することはできません。 クラス変数または静的変数は、同じ名前の他のメンバー変数とはまったく異なり、競合しません。以下は、クラスまたは静的変数の使用法を示すプログラムです- 例 class Fruits(object): count = 0 def __init__(self, name, count): self.name = name self.count = count Fruits.count = Frui