[英]static, final, static final - correct usage and when to use them?
我想知道何時應該為變量和(或)方法使用static,final,static final參數。 據我所知:
如果我是對的,那我就得不到一件事。 在IntelliJ IDE中,當您將方法聲明為public final static時,它指出應該刪除final,因為已經指出了static。 為什么,如何,何時???
static
表示字段或方法屬於類 ,而不是類的 單個實例 。
當應用於方法與字段(或局部變量)時, final
實際上意味着不同的東西:
final
變量和字段無法重新分配。 這與C ++的const
非常相似。 final
方法 , 這僅適用於實例上的方法 。 在這個意義上使用時, final
與C ++的const
不相似。 因為您無法覆蓋類上的static
方法,所以組合修飾符static final
通常是多余的,這就是IntelliJ建議您刪除其中一個修飾符的原因。
補充筆記:
final
變量和字段可以引用可能更改的實例,即使引用本身不能更改。 final
還有第三個含義: final
類不能被子類化。 static
也可以應用於嵌套類(類中的類),但它具有相同的含義: static
嵌套類不完全屬於封閉類的一個實例,否則它將屬於封閉類的一個實例。 static
方法無法被覆蓋,但是有一種類似的行為稱為“陰影”或“方法隱藏”, 子類通過該行為提供與子類具有相同名稱和簽名的靜態方法 。 這與覆蓋的行為不同,但類似地, static final
方法不能被遮蔽 。 相關的問題: “聲明一個最終的靜態方法是不是一個壞主意?”
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.