Java staticの使用を学ぶ
1810 ワード
1.静的メンバー変数クラス名で直接呼び出してもよいし、オブジェクト名で呼び出してもよい すべてのオブジェクトで使用される静的メンバー変数は同じ 静的メンバー変数は1部のみであり、1つの変更で変更される. 例 2.静的関数クラス名で直接呼び出してもよいし、オブジェクト名で呼び出してもよい 静的関数は1部のみ 静的関数は非静的変数を参照できず、エラーが発生する しかし静的でない関数が静的変数を参照する場合は可能である.
3.静的コードブロック関数のマウント時に自動運転され、あまり使われない. 作用は通常静的変数に初期値を付与する 例:
package durong.testStatic;
public class Person {
static int i;
}
package durong.testStatic;
public class TestStatic {
public static void main(String[] args) {
// TODO Auto-generated method stub
Person p1 = new Person();
Person p2 = new Person();
Person.i = 20;
System.out.println("p1.i->"+p1.i);
System.out.println("p2.i->"+p2.i);
p1.i = 10;
System.out.println("p1.i->"+p1.i);
System.out.println("p2.i->"+p2.i);
}
}
3.静的コードブロック
package durong.testStatic;
public class Person {
static int i;
static{
i=30;
System.out.println(" "+i);
}
void funA()
{
System.out.println(" "+i);
}
}
package durong.testStatic;
public class TestStatic {
public static void main(String[] args) {
// TODO Auto-generated method stub
Person p1 = new Person();
Person p2 = new Person();
System.out.println("p1.i->"+p1.i);
System.out.println("p2.i->"+p2.i);
Person.i = 20;
System.out.println("p1.i->"+p1.i);
System.out.println("p2.i->"+p2.i);
p1.funA();
p1.i = 10;
p1.funA();
System.out.println("p1.i->"+p1.i);
System.out.println("p2.i->"+p2.i);
}
}