成員變量與全局變量的區別


全局變量:也叫成員變量,是指在類中定義的變量;它在整個類中都有效

               全局變量又可分為:類變量和實例變量

               1.類變量:又叫靜態變量  用static修飾  它可以直接用類名調用  也可以用對象調用   而且所有對象的同一個類變量都是共享同

                              一塊內存空間的

               2.實例變量:不用static修飾  它只能通過對象調用  而且所有對象的同一個實例變量是共享不同的內存空間的

 

局部變量:是指那些在方法體中定義的變量以及方法的參數   它只在定義它的方法內有效

 

注意:如果某個方法中的局部變量的名字與全局變量的名字相同  則該全局變量在這個方法中暫時失效 

public class Test{

  int a=0; //全局變量

  public static void main(String[] args){

  int b =0;//局部變量

}

}

 

先看下面兩段程序:

程序一:
public class Variable
{
int i;
void test()
{
   int j=8;
   if(j==i)
    System.out.println("相等");
   else
    System.out.println("不相等");
}
public static void main(String[] args)
{
   Variable v=new Variable();
   v.test();
}
}

程序二:
public class Variable
{
   void test()
{
   int i;
   int j=8;
   if(j==i)
    System.out.println("相等");
   else
    System.out.println("不相等");
}
public static void main(String[] args)
{
   Variable v=new Variable();
   v.test();
}
}

----------------------------------------------------------------------------------------------------------

第一個程序很正常,編譯時不會出錯。第二個程序編譯時會提示如下錯誤:

D:\Program\java\test>javac Variable.java
Variable.java:9: 可能尚未初始化變量 i
                if(j==i)
                      ^
1 錯誤

之所以會出現這樣的錯誤是因為:成員變量有默認值,(被final修飾且沒有static的必須顯式賦值),局部變量不會自動賦值

===========================================================

類體分為兩部分。變量定義部分所定義的變量被稱為類的成員變量,在方法體中定義的變量和方法的參數都被稱為局部變量

java中成員變量和局部變量的區別

1.成員變量可以被public,protect,private,static等修飾符修飾,而局部變量不能被控制修飾符及static修飾;兩者都可以定義成final型
2.成員變量存儲在堆,局部變量存儲在棧
3.存在時間不同
4.成員變量有默認值,(被final修飾且沒有static的必須顯式賦值),局部變量不會自動賦值
-------------------------------------------------------------------------------------------------------------
顧名思意了
什么是局部,方法內部,塊內部都是局部,執行指令退出那個局部,局部變量自動清除

比如方法中,不用說
塊中
{
  int i=0; //這是一個局部變量,它的作用范圍就在其中 
}

成員變量就會涉及到誰的成員,類的成員?實例的成員?

class A{
int i=0; //實例的成員
static j=1;//類的成員
}

static 的差別,是否依賴於實例而存在
----------------------------------------------------------------------------------------------------------

成員變量:作為類的成員而存在,直接存在於類中。

局部變量:作為方法或語句塊的成員而存在,存在於方法的參數列表和方法定義中。

局部變量在使用前必須被程序員主動的初始化,和此形成對比,系統中的成員變量則會被系統提供一個默認的初始值。所以在語法上,類的成員變量能夠定義后直接使用,而局部變量在定義后先要賦初值,然后才能使用。

 

所有類的成員變量可以通過this來引用。成員變量又分成倆中類型:實例變量和靜態變量。靜態變量在定義時要使用static關鍵字


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM