Java類中靜態(tài) - 成員 - 局部

首先可以明確地說出一個Java類中大體分為兩大塊
1.變量
2.方法
但是方法與變量又有不同的類型
總體來說,方法與變量的種類是能對應(yīng)起來的。
3 -> 2
即3種變量類型-----2種方法類型

分類 變量 方法
靜態(tài)(static) 靜態(tài)變量 靜態(tài)方法
成員 成員變量 成員方法
局部 局部變量

以上我們就可以較為直觀的感受到變量與方法的分類

變量與方法存在的意義就是被使用,那我們該如何使用這些變量,或是方法呢?

很關(guān)鍵!!需要注意!
1.靜態(tài)方法和靜態(tài)變量會隨著類的定義而被分配和載入內(nèi)存中。
2.成員方法和成員變量只有在類實例化后new出來的的那個對象的內(nèi)存空間中才有成員方法與成員變量的代碼片段。

根據(jù)上面的特點以及我們的測試,可以得知:
1.靜態(tài)方法可以訪問靜態(tài)變量以及其他的靜態(tài)方法。
2.成員方法可以訪問成員變量,成員方法,靜態(tài)變量和靜態(tài)方法。
之所以會形成以上這樣一種模式成員方法可以訪問各種靜態(tài)代碼,而反過來靜態(tài)方法不能訪問各種成員代碼段的原因是,靜態(tài)方法靜態(tài)屬性在類 被定義的時候就已經(jīng)載入內(nèi)存了,而此時成員方法與成員變量并沒有在內(nèi)存中,如果在靜態(tài)方法中訪問成員變量/方法就會報如下錯誤

圖片.png

形成這種模式(套路)的原因是由JVM決定的。
所以在開發(fā)中我們需要記得,靜態(tài)只能訪問靜態(tài)(包括靜態(tài)之間的賦值),而成員方法能訪問靜態(tài)與成員??傮w來說,靜態(tài)方法的范圍更大,類與類所實例化出來的任意一個對象都可以進(jìn)行訪問。而成員方法只能實例化的那個對象訪問屬于他自己的成員方法/變量。

  • 在方法中還有一個比較特殊的方法
    構(gòu)造方法記住一點,一般方法一定要寫請出返回值類型(包括getter與setter---具體類型與void)
    但是構(gòu)造方法無需寫出返回值類型
    (也可以反推,在類中如果一個方法沒有寫返回值類型,那么他就是一個構(gòu)造方法---構(gòu)造方法連void都不用寫,很特殊),
    在實例化對象的時候,new 關(guān)鍵字其實就是調(diào)用了構(gòu)造方法。
    構(gòu)造方法是實例化對象時進(jìn)行初始化的。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容