1. 程式人生 > >java static的應用

java static的應用

java static的一個應用demo

1. 用於記錄建立了多少個例項物件

//static 的一個應用
public class TestCircle {
	public static void main(String[] args) {
		Circle c1 = new Circle(6.5);
		Circle c2 = new Circle(6.3);
		System.out.println(Circle.getTotal());//2
		
	}
}
class Circle{
	private double radius;//半徑
	private static String info = "我是一個圓";
	//因為total是static的,在記憶體中只有一個,所以可以用來記錄建立的物件的個數
	private static int total = 0;
	
	public Circle(double radius) {
		this.radius = radius;
		total++;
	}

	public double getRadius() {
		return radius;
	}

	public void setRadius(double radius) {
		this.radius = radius;
	}

	public static String getInfo() {
		return info;
	}

	public static void setInfo(String info) {
		Circle.info = info;
	}

	public static int getTotal() {
		return total;
	}
	
	public static void show() {
		System.out.println(info);
	}
	
	@Override
	public String toString() {//快速生成預設只有例項變數
		return "Circle [radius=" + radius + "]";
	}
	
}

2.什麼情況下我們可以把變數或者方法宣告成static方法呢

  1. 當屬性為了所有例項都公用一個屬性的時候,如:所有中國人例項,都只有一個國籍,π不會因為情況而改變,所有人都遵循這個標準。
  2. 當方法不依賴於具體物件的不同而不同,如:陣列獲取最大值的方法,其不會因為物件的不同而改變,它只是提供了一個 int 陣列獲取最大值功能而已。
public static int getMax(int [] arr){
	int max = arr[0];
	for(int i = 1; i < arr.length; i++){
		if(max < a[i]){
			max = a[i];
		}
	}
	return max;
}