1. 程式人生 > >java語言基礎之面向對象之變量

java語言基礎之面向對象之變量

bsp 代碼塊 基礎 空間 tab width 必須 需要 程序

---恢復內容開始---

定義變量的語法:

數據類型 變量名=值

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

變量根據在類中定義位置的不同,分成兩大類:

成員變量:全局變量/字段(Field),不要稱之為屬性(錯誤)。直接定義在類中,方法外面。

      1):類成員變量  使用static修飾的字段。

      2):實例成員變量  沒有使用static修飾的字段。

局部變量:變量除了成員變量,其他都是局部變量。

      1):方法內部的變量。

      2):方法的形參。

      3):代碼塊中的變量,一對{}。

class ABC
{
  String info=null;//成員變量
    void doWork(String name)
    {
          int age;//局部變量  
    }                  
}

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

變量的初始值:初始化才會在內存中開辟空間。

成員變量:默認是有初始值的。

局部變量:沒有初始值,,所以必須先初始化才能使用。

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

變量的作用域

  變量根據定義的位置不同,也決定了各自的作用域是不同的。

成員變量:在整個類中都有效

局部變量:從開始定義的位置開始,到緊跟著結束的花括號為止

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

成員變量,可以先使用後定義,局部變量必須先定義而後才能使用。

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

存在位置 生命周期開始 生命周期結束 在內存中的位置
類變量 字段,使用static修飾 為所在字節碼被加載進JVM 當JVM停止 方法區
實例(成 員)變量 字段,沒有使用static修飾 當創建所在類的對象的時候 當該對象被GC回收
局部變量 方法形參,代碼塊中,方法內 當代碼執行到初始化變量的時候 所在的方法/代碼塊結束

什麽時候使用成員變量和局部變量:

1):考慮變量的生存時間,這會影響內存開銷。

2):擴大變量作用域,不利於提高程序的高內聚。

開發中應該盡量縮小變量的使用範圍,如此在內存中停留時間越短,性能也就越高。

不要動不動就使用static修飾,定義工具方法時static方法需要訪問的變量,該變量屬於類,此時才使用static修飾字段。

也不要動不動就使用成員變量,因為存在著線程不安全的問題,能使用局部變量盡量使用局部變量。

---恢復內容結束---

java語言基礎之面向對象之變量