第十二、Java的成員變量與局部變量的區別

成員變量與局部變量的區別:

0、定義的位置上區別:

成員變量:  定義在方法之外,類之內的變量

局部變量:  定義在方法之內的變量


1、應用範圍的區別

         成員變量在整個類內都有效   

         局部變量只在其聲明的方法內有效

2、生命週期的區別

         成員變量: 它屬於對象,它隨着對象的創建而創建,隨着對象的消失而消失

         局部變量: 使用完馬上釋放空間。局部變量在調用了對應的方法時執行到了創建該變量的語句時存在,局部變量一旦出了自己的作用域
那麼馬上從內存中消失。

                            

                              void show(int id){  
                                   for(inti=0;i<10;i++){
                                         for(intj=0;j<10;j++){
                                                 System.out.println(id);
                                          }
                                   }
                            }

                            這時候 id,i,j者是在方法內聲明的,全是局部變量

                            j當裏層for循環執行它的生命週期開始,當裏層for結束,j消失

                            i當外層for循環執行它的生命週期開始,當外層for結束,j消失

                            id在方法被調用時開始,方法結束時,id消失.

3、 存儲位置的區別

              成員變量屬於對象,它存儲在堆內,堆內的實體,當沒有引用指向其時,才垃圾回收清理 

              局部變量存在棧內存中,當不在使用時,馬上就會被釋放。


4、 初始值的區別

               成員變量它存儲在堆中,如果沒有賦初值,它有默認值。

                1.   整數byte、short、int、long =0;

                2.   char='\uoooo';

                3.   boolean =flase;

                4.   String =null;

                5.   類類型 =null;

                6.       數組 =null;


             局部變量,如果要想使用必須手動初始化。局部變量是沒有默認的初始值的,必須要先初始化才能使用。

                            i.     方法中,參數列表中,語句中。

                          ii.     必須給初始化值,沒有初始值,不能使用

                          iii.     在棧內存中

5、作用上的區別:

1. 成員變量的作用是用於描述一類事物的公共 屬性的。
2. 局部變量的作用就是提供一個變量給方法內部使用而已。




//人類
class Person {
	
	String name; //成員變量
         //方法
	public void eat(){
                //局部變量
		int age ;

		age = 12;
		for(int i =  0 ; i< 5 ; i++){
			System.out.println("hello world"+ age);
		}
	}

}










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