#このチュートリアルの動作環境: Windows7 システム、Java8 バージョン、DELL G3 コンピューター。Java では、静的変数は静的によって変更されたクラスの変数を指します。静的変数はすべてのクラス インスタンス オブジェクトによって共有され、クラスが初めてロードされる場合に限り、メモリ内にコピーが 1 つだけ存在します。初期化されます。
静的によって変更されたクラスの変数は、静的変数とも呼ばれます。 非静的変数はインスタンス変数とも呼ばれます
静的変数とインスタンス変数の違いは次のとおりです:public class MyStatic { // 静态变量 private static int index = 0; // 实例变量 private int count = 0; public void inc() { index++; count++; } public String get() { return "静态变量index = " + index + ", 实例变量count = " + count; } }
/** * index是静态变量 * count是实例变量 * */ public class StaticVariableTest { public static void main(String[] args) { MyStatic myStatic1 = new MyStatic(); MyStatic myStatic2 = new MyStatic(); MyStatic myStatic3 = new MyStatic(); myStatic1.inc(); System.out.println("myStatic1的index、count增加1:"); System.out.println("myStatic1的" + myStatic1.get()); System.out.println("myStatic2的" + myStatic2.get()); System.out.println("myStatic3的" + myStatic3.get() + "\n"); myStatic2.inc(); System.out.println("myStatic2的index、count增加1:"); System.out.println("myStatic1的" + myStatic1.get()); System.out.println("myStatic2的" + myStatic2.get()); System.out.println("myStatic3的" + myStatic3.get() + "\n"); myStatic3.inc(); System.out.println("myStatic3的index、count增加1:"); System.out.println("myStatic1的" + myStatic1.get()); System.out.println("myStatic2的" + myStatic2.get()); System.out.println("myStatic3的" + myStatic3.get()); } }
#次のことがわかります:
#静的変数インデックスは複数のオブジェクト インスタンスによって共有されます
myStatic1的index、count增加1: myStatic1的静态变量index = 1, 实例变量count = 1 myStatic2的静态变量index = 1, 实例变量count = 0 myStatic3的静态变量index = 1, 实例变量count = 0 myStatic2的index、count增加1: myStatic1的静态变量index = 2, 实例变量count = 1 myStatic2的静态变量index = 2, 实例变量count = 1 myStatic3的静态变量index = 2, 实例变量count = 0 myStatic3的index、count增加1: myStatic1的静态变量index = 3, 实例变量count = 1 myStatic2的静态变量index = 3, 实例变量count = 1 myStatic3的静态变量index = 3, 实例变量count = 1
3. 静的変数の誤解
public class StaticVariable { public static int index = 1; public static void main(String[] args) { StaticVariable staticVariable = new StaticVariable(); staticVariable.get(); } private void get() { int index = 2; System.out.println(this.index); } }
実行結果:
3.3 static はクラス メンバーのアクセス権限を変更しません
public class MyStatic { public static int index1 = 1; // 静态变量 private static int index2 = 0; } public class StaticVariableTest { public static void main(String[] args) { System.out.println(MyStatic.index1); System.out.println(MyStatic.index2); } }
推奨される関連ビデオ チュートリアル: Java ビデオチュートリアル######
以上がJavaの静的変数とは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。