JAVAのメンバー変数、インスタンス変数、およびクラス変数の違い

Javaの3つの主要な変数タイプ

  • クラス変数:メソッド関数から独立したグローバル静的変数とも呼ばれ、静的変数があります
  • インスタンス変数:メソッド関数から独立しており、静的な変更はなく、グローバル変数とも呼ばれます
  • メンバー変数:メソッド関数で定義され、ローカル変数とも呼ばれます

クラス変数

グローバル静的変数。たとえば、作成されるオブジェクトの数に関係なく、プログラム全体に1つしかありません。

 public class 	Person(){
    
    
 public static int i=0;
}
public  static void main(String[] args){
    
    
		Person person=new Person();
		person.i++;
		Person person1=new Person();
		person1.i++;
	}

ここで、person1によって取得されたiは1ですが、person1によって取得されたiは2です。

インスタンス変数

オブジェクトの作成に応じて、定義された初期化があり、オブジェクトが破棄されると破棄されます。値がそれぞれのオブジェクトにバインドされているさまざまなオブジェクトを作成します。オブジェクトには独自のインスタンスオブジェクトがあり、オブジェクトにはインスタンス変数があります。

public class TestTwo {
    
    
	
	public List<String> list=new ArrayList<String>();
}
@Test
	public  void sdsd(){
    
    	
		TestTwo one=new TestTwo();
		one.list.add("string");
		TestTwo one1=new TestTwo();
		one1.list.add("string2");		
       System.out.println( one.list);					
	}

ここで、1つのオブジェクトは文字列を出力し、one1はstring2を出力します。oneとone2のオブジェクトは異なるオブジェクトであるため

メンバー変数

メソッド関数で定義され、オブジェクトの数に関係なく、関数が呼び出されたときに生成され、関数が終了したときに破棄されます。

public class TestTwo {
    
    
	
	public void getNumber(){
    
    
	int i=0;
	i++;
	System.out.println(i);
}
@Test
	public  void sdsd(){
    
    	
		TestTwo one=new TestTwo();
		one.getNumber();
		TestTwo one1=new TestTwo();
		one1.getNumber();				
	}
这里输出的都是1.

参照リンク:https//blog.csdn.net/dingwang9210/article/details/101385683

おすすめ

転載: blog.csdn.net/weixin_40620651/article/details/114995896