1. 程式人生 > >private static 成員變數和區域性變數的區別

private static 成員變數和區域性變數的區別

形式引數的問題:如果是基本資料型別,形式引數的改變對實際引數沒有影響;如果是引用型別,形式引數的改變會直接影響實際引數。

區域性變數可以將成員變數隱藏掉,Java中提供了一個關鍵字:this:其代表當前類的物件,或者是(當前類物件的引用)解決區域性隱藏了成員變數

類的組成中有一個成員(成員方法的定義)1,按返回值劃分:void的形式:沒有具體的返回值

                                                                                        非void形式:有具體的返回值

                                                             2,參照引數進行劃分:有參;空參

匿名物件就是建立物件的時候沒有名字的物件,在實際開發中只使用一次,不要多次使用(可能會造成一個記憶體溢位的現象)

:Java提供了關鍵字:private:私有的

  private:體現的也是一種封裝思想
 封裝:標準類的寫法,將成員變數全部私有化,被private修飾的成員變數只能在本類中訪問,可以通過公共的訪問方法去訪問成員變數

private的用法:1,被其修飾只能在本類中訪問,2,可以通過公共的public去間接訪問

當前成員變數和區域性變數一致的情況,遵循就近原則

static:多個物件對同一個變數進行共享這時候用Jave中的關鍵字static(靜態的,共享的)在方法區中開闢一個靜態區域:都是靜態標記

        1,靜態隨著類的載入而載入

        2,static優先於物件存在:main  public static void main(..){...};

        3,static共享資料,可以被多個物件進行共享

        4,如果資料是被靜態修飾的,它可以被類名直接呼叫,被靜態修飾的方法:類名.方法名()

                                                 被靜態修飾的變數:類名.變數名;

static的用法:一個類中可以有靜態變數,也可以有非靜態變數,

                      可以有靜態成員方法,也可以非靜態的成員方法

                        非靜態的方法,既可以訪問靜態變數也可以訪問非靜態變數(靜態只能訪問靜態)

成員變數和區域性變數的區別
  1)在類中位置不同
  成員變數:類中,方法外
區域性變數:方法宣告上,或者再方法定義中
  2)在記憶體中的位置不同:
  成員變數:堆記憶體
  區域性變數:棧記憶體
  3)生命週期不同:
  成員變數:成員變數是隨著類的載入而載入,隨著類的消失而消失
 區域性變數:隨著方法的呼叫而存在,隨著方法呼叫完畢而消失
 4)初始化值不同
  成員變數:初始化由系統預設初始化,
    對於成員變數,可以不給初始化值,由系統給,然後顯示初始化;

  區域性變數:定義一個區域性變數,必須進行初始化,如果不初始化,無法使用(在使用之前進行初始化)行初始化)

構造方法作用:給物件進行初始化

構造方法屬於一類的成員:成員變數、構造方法(1、方法名和類名相同      2、構造方法,連void都沒有)、成員方法

構造方法的注意事項:
1)之前沒有寫無參構造,系統會預設提供無參構造
 2)如果我們無參構造或者有參構造,系統不會在提供無參構造;定義一個類的時候,永遠給出無參構造;
 構造方法是可以過載的: