天天看點

java靜态域和靜态方法

1.靜态域:如果将域定義為static,每個類隻有一個這樣的域。而每個對象對于所有的執行個體域卻有自己的一份拷貝。

2.靜态變量:就是聲明為靜态的可以進行改變的變量(什麼??!跟沒說一樣!!我去,好吧,我承認!!)

例子:private static int nextId=1;

3.靜态常量:同靜态變量相比,靜态常量一經指派就不可改變;

例子:public static final double PI=3.14159265358979213846;

4.靜态方法:靜态方法是一種不能向對象實施操作的方法。

例子:main方法,Math類的pow方法

main:public static void main(String[] args);

pow:public static double pow(double args1,double args2);

注意:有兩種情況考慮使用靜态方法:

1:一個方法不需要通路對象狀态,其所需參數都是通過顯式參數提供。

2:一個方法隻需要通路類的靜态域。

5.工廠方法:額,這是啥,說實話我也沒太看懂,不過看了會用,個人了解為使用這個方法建立一個格式化對象,然後這個對象可以接受不同的參數做格式化處理,就像進廠"加工"後然後再"出廠"一樣,就得到了“産品”。

例子:代碼:

package com.zhangyanjie;

import java.text.NumberFormat;

public class FactoryMethod {

	public static void main(String[] args) {
		NumberFormat currencyFormatter=NumberFormat.getCurrencyInstance();
		NumberFormat percentFormatter=NumberFormat.getPercentInstance();
		double x=0.1;
		System.out.println(currencyFormatter.format(x));
		System.out.println(percentFormatter.format(x));
	}
}
           

運作結果:

java靜态域和靜态方法

6.main方法:main方法不對任何對象進行操作。事實上,在啟動程式時還沒有任何一個對象。靜态的main方法将執行并建立程式所需要的對象。

小提示:可以在自己寫的每個類中都加入main方法,然後進行測試自己的類,這并不會影響其他類使用這個類。