java中static、final、static final浅析
生活随笔
收集整理的這篇文章主要介紹了
java中static、final、static final浅析
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
final
- final可以修飾類、屬性、方法、局部變量、參數,不能修飾接口!
- final修飾類:該類不能被繼承(解釋了為什么不能修飾接口,不過接口里面的屬性、方法等是可以用final修飾的);
- final修飾屬性:表示該屬性是一個常數,即值不能改變;
- final修飾方法:該方法所在的類可以被繼承,但是該方法不允許被重寫。同時我們知道父類的private方法是不能被重寫的,因此private的方法實際上默認就是final的;
- final修飾局部變量:表示該局部變量是常數。但是需要注意,在修飾局部變量時,可以先僅僅是申明而不賦值,但是必須要在第一次使用前給它賦初值,并且賦值后不能修改;
- final修飾參數:可以讀取改參數,但是不能修改。
注意:final如果修飾的是一個引用,比如說Student a = new Student();,那么不可以a = b;(假設b是另一個Student類型的對象),但是可以對a所指向的這個Student類的內部屬性進行修改,比如修改其姓名年齡之類的。
static
- static可以修飾:屬性,方法,代碼段,內部類(靜態內部類或嵌套內部類)
- static修飾的屬性其值是可變的,它更強調的是“單例”性
- static修飾的屬性、方法、代碼段可以在不創建該類的對象的情況下被調用,且即便是該類創建了很多個對象,被static修飾的部分永遠只有一份實例,所有的對象共同享有這一個實例,如果不小心的話這有可能會導致一些問題
- static不能喝this、super聯用,因為static與具體對象無關,而this和super顯然有關
- static不可以修飾局部變量
java中被static修飾的成員變量,存儲在方法區(注意不是堆也不是棧)!
static final
static final和final static是一樣的,不過習慣上都寫成static final
這個修飾符就是綜合了static和final兩者的功能。
- 修飾屬性:表示該屬性只有一個實例且不能被改變,且可以通過類名調用
- 修飾方法:表示該方法不能被重寫,且可以通過類名被調用
總結
static強調唯一性,而final強調不可變性
總結
以上是生活随笔為你收集整理的java中static、final、static final浅析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: rust(16)-数组
- 下一篇: rust(19)-进制