當預設的情況下,建立一個類的物件,該物件就擁有一份屬於自己的類中全部資料成員的副本。

當一個物件中資料元素改變時,不會影響其他物件該資料元素的值。這類變數就是例項變數。

但是對於靜態變數則不同,它是屬於整個類,不屬於任何一個物件,,而且靜態變數永遠只有一份備份空間。

靜態變數可以直接通過類名進行訪問(與物件的建立與否無關),當然通過物件進行訪問也是可以的,但不提倡這樣的做法。

執行結果如下:

A.x = 10
B.x = 22
b1.x = 22
b2.x = 22
b1.y = 31
b2.y = 30

import java.util.Scanner;
import java.util.ArrayList;

public class HelloJava {
	public static void main(String[] args){
		System.out.println("A.x = "+A.x);
		B b1 = new B();
		B b2 = new B();
		B.x ++;
		b1.x ++;
		b1.y ++;
		System.out.println("B.x = "+B.x);
		System.out.println("b1.x = "+b1.x);
		System.out.println("b2.x = "+b2.x);
		System.out.println("b1.y = "+b1.y);
		System.out.println("b2.y = "+b2.y);
	}
}
class A{
	static int x = 10;
}

class B{
	static int x = 20;
	int y = 30;
}