Java中可以宣告一個類為Static嗎?
答案可以是Yes或No,取決於這個類的是最外層類還是內部類。
編譯器不允許最外層的類宣告為Static,但是可以宣告內部類為Static。
概念
巢狀類指被定義在另一個類的內部。巢狀類存在的目的應該只是為它的外圍類提供服務。如果巢狀類可能用於其他的某個環境中,那麼它應該是頂層類。
巢狀類有四種:除了第一種之外,其它三種都被稱為內部類。
- 靜態成員類
- 非靜態成員類
- 匿名類
- 區域性類
靜態內部類和普通內部類的特點:
1、靜態成員類最好把它看做是普通的類,只是碰巧的被宣告在另一個類的內部而已,它可以訪問例項化後的外圍類的所有成員,包括哪些宣告為私有的成員。
2、靜態內部類,可以宣告普通成員變數和方法,而普通內部類不能宣告static成員變數和方法
3、靜態內部類,可以單獨初始化。普通內部類,必須先初始化外部類
靜態成員類一種常見用法是作為公有的輔助類,僅當與它的外部類一起使用時才有意義。
參考
[1] Joshua Bloch. Effective Java 2016年5月第二版 機械工業出版社. 優先考慮靜態成員類
相關文章
- 陣列宣告為public final static缺陷陣列
- 【Java小疑問】java原始檔當中可以有多個類,但是為什麼只能有一個public類呢?Java
- java中父類宣告子類例項化Java
- 你真的瞭解JAVA中物件和類、this、super和static關鍵字嗎Java物件
- java中的Static、final、Static final各種用法Java
- java中的Arrays這個工具類你真的會用嗎Java
- Java | 靜態巢狀類(Static Nested Class)Java巢狀
- Java中static的含義Java
- JAVA中的註解可以繼承嗎?Java繼承
- 使用java設計一個名為Time的類Java
- 作為一個Java開發你用過Jib嗎Java
- java中的static關鍵字Java
- interface 中的方法不可以是static 的
- 一個空間可以放幾個網站嗎網站
- 在Docker中,可以在一個容器中同時執行多個應用程序嗎?Docker
- java中static關鍵字的作用Java
- Java中的static詳細講解Java
- CWE-500:宣告為public static的域沒有標記final缺陷簡介
- [轉載] .NET 中可以有類似 JVM 的幻像引用嗎?JVM
- 你想成為一個黑客嗎?黑客
- 一個Java類的載入Java
- java中的static和final關鍵字Java
- static 靜態變數引起 Laravel 中佇列一個 Bug變數Laravel佇列
- 如何唯一確定一個 Java 類?Java
- 錯誤:類Men是公共的, 應在名為 Men.java 的檔案中宣告 public class Men extends PersonJava
- 一個 static 還能難得住我?
- 獲得某個類的所有宣告的欄位
- static關鍵字---"工具類"
- 一次性帶你弄懂java中的static關鍵字Java
- IPTV系統一個後臺可以有多個apk介面嗎?APK
- Java可以自學嗎?自學能學好嗎?Java
- ES6中類的靜態方法=> static 的使用
- JAVA面試題 淺析Java中的static關鍵字Java面試題
- 程式碼安全測試第二十五期:陣列宣告為public final static漏洞缺陷陣列
- Go 會接替 Java,成為下一個企業級程式語言嗎?GoJava
- TCP和UDP可以使用同一個埠號嗎?TCPUDP
- 4.7(java)為一元二次方程ax²+bx+c = 0設計一個名為QuadraticEquation的類。這個類包括:Java
- [JAVA] 只知物件屬性,不知類屬性?就算類答應,static都不答應Java物件
- Java零基礎可以學嗎?Java