Java中可以宣告一個類為Static嗎?
答案可以是Yes或No,取決於這個類的是最外層類還是內部類。
編譯器不允許最外層的類宣告為Static,但是可以宣告內部類為Static。
概念
巢狀類指被定義在另一個類的內部。巢狀類存在的目的應該只是為它的外圍類提供服務。如果巢狀類可能用於其他的某個環境中,那麼它應該是頂層類。
巢狀類有四種:除了第一種之外,其它三種都被稱為內部類。
- 靜態成員類
- 非靜態成員類
- 匿名類
- 區域性類
靜態內部類和普通內部類的特點:
1、靜態成員類最好把它看做是普通的類,只是碰巧的被宣告在另一個類的內部而已,它可以訪問例項化後的外圍類的所有成員,包括哪些宣告為私有的成員。
2、靜態內部類,可以宣告普通成員變數和方法,而普通內部類不能宣告static成員變數和方法
3、靜態內部類,可以單獨初始化。普通內部類,必須先初始化外部類
靜態成員類一種常見用法是作為公有的輔助類,僅當與它的外部類一起使用時才有意義。
參考
[1] Joshua Bloch. Effective Java 2016年5月第二版 機械工業出版社. 優先考慮靜態成員類
相關文章
- 【Java小疑問】java原始檔當中可以有多個類,但是為什麼只能有一個public類呢?Java
- java中父類宣告子類例項化Java
- 陣列宣告為public final static缺陷陣列
- 你真的瞭解JAVA中物件和類、this、super和static關鍵字嗎Java物件
- Java一行程式碼可宣告多個同類變數Java行程變數
- 模板類成員函式的定義和宣告為什麼要放在一個檔案中函式
- 多個model共用一個service可以嗎
- JAVA中的註解可以繼承嗎?Java繼承
- java中的Arrays這個工具類你真的會用嗎Java
- Java中static的含義Java
- java中static作用詳解Java
- Java中static、final、static final的區別Java
- 筆試題 類中static變數筆試變數
- 使用java設計一個名為Time的類Java
- 在Docker中,可以在一個容器中同時執行多個應用程序嗎?Docker
- Java | 靜態巢狀類(Static Nested Class)Java巢狀
- 一個空間可以放幾個網站嗎網站
- DCI中的Context可以理解為“用例”嗎?Context
- java中的Static、final、Static final各種用法Java
- java的一個類!Java
- java中的static關鍵字Java
- [轉載] .NET 中可以有類似 JVM 的幻像引用嗎?JVM
- 作為一個Java開發你用過Jib嗎Java
- Java可以自學嗎?自學能學好嗎?Java
- 你想成為一個黑客嗎?黑客
- Java中的static詳細講解Java
- java中static關鍵字的作用Java
- Java中的static關鍵字解析Java
- Java中static、final用法小結Java
- java類中 多個方法求和.Java
- 何時使用static類(工具類)
- Java之StaticJava
- static 靜態變數引起 Laravel 中佇列一個 Bug變數Laravel佇列
- CWE-500:宣告為public static的域沒有標記final缺陷簡介
- 一個Java類的載入Java
- C++函式中那些不可以被宣告為虛擬函式的函式C++函式
- 為什麼類中的執行緒函式必須要宣告靜態?執行緒函式
- IPTV系統一個後臺可以有多個apk介面嗎?APK