java中成員變量和局部變量的區(qū)別
java中成員變量和局部變量的區(qū)別
成員變量和局部變量都是Java中的兩種變量,那么,它們兩者具體上有哪些區(qū)別呢?
一、定義
成員變量:作為類的成員而存在,直接存在于類中。
局部變量:作為方法或語句塊的成員而存在,存在于方法的參數(shù)列表和方法定義中。
局部變量在使用前必須被程序員主動的初始化,和此形成對比,系統(tǒng)中的成員變量則會被系統(tǒng)提供一個默認的初始值。所以在語法上,類的成員變量能夠定義后直接使用,而局部變量在定義后先要賦初值,然后才能使用。
二、java中成員變量和局部變量的區(qū)別
1.成員變量在類中,局部變量在方法中。
2.聲明成員變量時可以不初始化(被final修飾且沒有static的必須顯式賦值),而局部變量必須手動初始化。 3.成員變量可以被public,protect,private,static等修飾符修飾,而局部變量不能被控制修飾符及static修飾;兩者都可 以定義成final型。
4.成員變量存儲在堆,局部變量存儲在棧。
5.存在時間不同。
三、小編舉例
類變量是類中獨立于方法之外的變量,用static 修飾。
實例變量也是類中獨立于方法之外的變量,不過沒有static修飾。
局部變量是類的方法中的變量。
看下面的偽代碼說明:
public class Variable{
static int allClicks=0;//類變量
String str="hello world";//實例變量
public void method(){
int i =0;//局部變量
}
}
實例變量也稱為:“域”,“成員變量”,在實體類或數(shù)據(jù)類中被稱為“屬性”或“字段”。當實例變量可以改變時,被稱為對象的狀態(tài)。
final用于常量的聲明,規(guī)范要求常量的變量名是大寫的。
statci 在java 里面用于對類方法和屬性進行修飾,其作用是什么呢?
有兩種情況是non-static無法做到的,這時你就要使用statice。
第一種:你希望不論產(chǎn)生了多少個對象,或不存在 任何對象的情形下,那些特定數(shù)據(jù)的存儲空間都只有一份;
第二種:你希望某個函數(shù)不要和class object綁在一起。即使沒有產(chǎn)生任何object,外界還是可以調(diào)用其static函數(shù),或是取用其static data。