java static的應用
阿新 • • 發佈:2018-11-05
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方法呢
- 當屬性為了所有例項都公用一個屬性的時候,如:所有中國人例項,都只有一個國籍,π不會因為情況而改變,所有人都遵循這個標準。
- 當方法不依賴於具體物件的不同而不同,如:陣列獲取最大值的方法,其不會因為物件的不同而改變,它只是提供了一個 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; }