クラウドで 伸びる人沈む人 |
|
|
|
staticの意味を徹底的に理解する
<IT技術の処方箋:staticの意味を徹底的に理解する> staticは、クラス特有の値をもち、オブジェクト毎に値を持ちません。 と言っても慣れていない方はチンプンカンプンでしょう。 そこで、以下のサンプルで覚えましょう。 2つのサンプルjavaを用意します。 ●一つ目 class Study_static{ static int a; int b; } ●二つ目 public class HelloWorld { public static void main(String args[]) { System.out.println("Hello World!"); Study_static x = new Study_static(); x.a = 1; x.b = 2; Study_static y = new Study_static(); y.a = 3; y.b = 4; System.out.println(x.a); System.out.println(x.b); System.out.println(y.a); System.out.println(y.b); } } ●これを実行してみましょう。 >java HelloWorld Hello World! 3 2 3 4 えっと、わかりましたか? 何故、結果が、1,2,3,4とならないのか? static変数aは、オブジェクトごとに値を持たないのです。 だから、一番最後に代入した y.a = 3; というコードにより、 static変数a の値は、3となったわけです。 わかりましたでしょうか? このように、static変数は、オブジェクト毎に 値をもちません。気をつけましょう。 |