java基礎 變量和靜態的總結

首先對java中的變量進行分類:

java中的變量主要分爲成員變量和局部變量。

成員變量:在類中定義,用來描述對象將要有什麼。(成員變量有系統默認的初始值)(作用域爲整個類內部)

實例變量 (無static修飾)

類變量 (以static修飾)

局部變量:在方法中定義,在方法中臨時保存數據。(局部變量必須自己設置初始值)(作用僅限於定義它的方法內)

形參

方法局部變量 (注:任何方法的變量必然爲局部變量,不可用static修飾,static修飾的變量必然在類中方法外)

代碼塊局部變量


定義一個變量前需要思考:

如果一個變量或方法不依賴與類的某個實例,就應該定義爲靜態變量或靜態方法。

例:定義一個circle的radius或者area,都必須以來一個實例的circle   故他們只能定義爲實例變量

<pre name="code" class="java">public class Test1{
	//int times = 0;	此行的times爲類中的成員變量,在下面靜態的主方法中所有的times必須用本類的對象T1來調用。如想直接調用需要用static修飾times
	public static void main(String[] args){
		Count myCount = new Count();
		int times = 0;	//定義在靜態主方法下的局部變量 不可用static修飾 不做任何修飾
		//Test1 T1 = new Test1();   
		//T1.times = 0;
		for(int i = 0;i<100;i++)
		increment(myCount,times);	//主方法中調用的increment方法,如increment方法爲非靜態方法,此處需要用本類的對象T1來調用	
		System.out.println("count is "+myCount.count);
		System.out.println("times is "+times);
	}
		public static void increment(Count c,int times){	//主方法爲靜態方法  在主方法中直接調用,increment方法必須也是靜態方法
			c.count++;
			times++;
		}
}
class Count{
	public int count;
	public Count(int c){
		count = c;
	}
	public Count(){
		count = 1;
	}
}

靜態成員(屬性和方法)都是類特有的,是爲了各個對象共享數據的。

從java運行加載順序的角度看,靜態是隨着類的加載而加載。

靜態相當於解壓縮文件,靜態可以直接使用。非靜態相當於壓縮文件。非靜態需要解壓後(即調用對象)才能使用。


從面向對象的思想現實意義考慮,無論是static修飾的方法還是變量,首先,我們之所以用Static修飾有一個很直接的目的就是訪問方便,當然,方法和變量各有它們的作用,方法的作用是告訴我們怎樣去做具體的事,所以它裏面的變量已經沒有那麼重要了,因爲我們的方法具有普適性,對於它裏面的變量的調用好像沒有太大的價值,變量只不過是個形式,值都是從外面傳進方法來的。所以方法體裏面的變量一般不加任何修飾符。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章