靜態變量和成員變量的區別 && 成員變量和局部變量的區別
阿新 • • 發佈:2018-02-13
存在 通過 == 賦值 log 聲明 class 類的加載 範圍
靜態變量:可以通過對象名調用,也可以通過類名調用。
成員變量:只能通過對象名調用。
成員變量:有默認值。
局部變量:沒有默認值,必須定義,賦值,然後才能使用。
(5)註意事項:
局部變量名稱可以和成員變量名稱一樣,但是在方法中使用該變量的時候,采用的是就近原則(即先找小範圍,再找大範圍)。
=============================================================================
1)靜態變量和成員變量的區別:
(1):所屬不同:
靜態變量:屬於類,也稱為類變量。
成員變量:屬於對象,也稱為對象變量或實例變量。
(2):在內存中的位置不同:
靜態變量:存儲於方法區的靜態區。
成員變量:存儲於堆內存。
(3):生命周期不同:
靜態變量:靜態變量是隨著類的加載而加載,隨著類的消失而消失。
成員變量:成員變量是隨著對象的創建而存在,隨著對象的消失而消失。
(4):調用不同:
靜態變量:可以通過對象名調用,也可以通過類名調用。
成員變量:只能通過對象名調用。
=============================================================================
2)成員變量和局部變量的區別:
(1)在類中的位置不同:
成員變量:在類中方法外。
局部變量:在方法定義中或者方法聲明上(即形參)。
(2)在內存中的位置不同:
成員變量:在堆中。
局部變量:在棧中。
(3)生命周期不同:
成員變量:隨著對象的創建而存在,隨著對象的消失而消失。
局部變量:隨著方法的調用而存在,隨著方法的調用完畢而消失。
(4)初始化值不同:
成員變量:有默認值。
局部變量:沒有默認值,必須定義,賦值,然後才能使用。
(5)註意事項:
局部變量名稱可以和成員變量名稱一樣,但是在方法中使用該變量的時候,采用的是就近原則(即先找小範圍,再找大範圍)。
=============================================================================
靜態變量和成員變量的區別 && 成員變量和局部變量的區別