Java staticの使用を学ぶ

1810 ワード

1.静的メンバー変数
  • クラス名で直接呼び出してもよいし、オブジェクト名で呼び出してもよい
  • すべてのオブジェクトで使用される静的メンバー変数は同じ
  • 静的メンバー変数は1部のみであり、1つの変更で変更される.
  • 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);
     }
    
    
    }
    
       
       
       
    
       
    
       
        
        
        
        
  • 2.静的関数
  • クラス名で直接呼び出してもよいし、オブジェクト名で呼び出してもよい
  • 静的関数は1部のみ
  • 静的関数は非静的変数を参照できず、エラーが発生する
  • しかし静的でない関数が静的変数を参照する場合は可能である.

  • 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);
    	}
    
    }