變數分為哪些 成員變數:類裡面,方法外面定義的變數 + 實例變數:沒有用static修飾的變數,屬於對象;存在期:創建實例~銷毀實例;作用域:與該實例的生存範圍相同 + 類變數:用static修飾的變數,屬於類;存在期:類的準備階段~銷毀該類;作用域:與類的生存範圍相同 局部變數: + 形參:方法簽 ...
變數分為哪些
- 成員變數:類裡面,方法外面定義的變數
- 實例變數:沒有用static修飾的變數,屬於對象;存在期:創建實例~銷毀實例;作用域:與該實例的生存範圍相同
- 類變數:用static修飾的變數,屬於類;存在期:類的準備階段~銷毀該類;作用域:與類的生存範圍相同
- 局部變數:
- 形參:方法簽名中聲明的變數;作用域:整個方法內
- 方法局部變數:方法體內部聲明的變數;作用域:定義該變數之處~方法結束
- 代碼塊局部變數:由花括弧括起來的代碼塊內部聲明的變數;作用域:定義該變數之處~代碼塊結束
- 變數命名:
- 有意義;首字母小寫+駝峰命名法
成員變數
- 在書寫類時,不需要將成員變數初始化
- 在類的準備階段(類變數)或者創建實例(實例變數)時,會進行預設初始化
局部變數
- 形參:在調用方法時,會傳入參數,因而不需要初始賦值
- 方法局部變數+代碼塊局部變數:在使用前,得先給個初始值
- 局部變數只保存基本類型或者對象的引用,所占的記憶體區域較小
變數的重名
- 成員變數不能重名,即使一個類變數,一個實例變數
- 形參與形參不能重名
- 方法局部變數不能重名
- 形參與方法局部變數不能重名
- 代碼塊內部的變數只在代碼塊內部有效,不能與外部的變數重名
- 成員變數與局部變數可以重名,成員變數會被局部變數覆蓋;要做區分時,用this.成員變數或者類名.成員變數來訪問成員變數
變數的使用規則
- 使用成員變數:
- 用於描述某個類或對象的固有信息;類相關的變數定義為類變數,比如人都有2個眼睛;實例相關的變數定義為實例變數
- 保存某個類或對象的狀態信息的變數
- 需要在多個方法間進行共用的變數
- 局部變數:
- 儘可能縮小局部變數的作用範圍,在記憶體中的停留時間越短,性能越好
其他
- 類在使用之前要經過:類載入、類驗證、類準備、類解析、類初始化等階段
- 棧記憶體中的變數,無序系統垃圾回收,隨方法或代碼塊的運行結束而結束