static一般用來修飾成員變量或函數也修飾代碼塊,一般不能修飾類,但是可以修飾內部類,被修飾的內部類可以直接作為一個普通類來用,不需要創建一個外部類的實例,而普通內部類的引用需要創建一個外部類的實例。
package com.tonyluis; public class StaticClassTest { public static void main(String[] args) { //靜態內部類可以直接new StaticInner si=new StaticInner(); //非靜態內部類需創建一個父類的實例,方能new StaticClassTest sct=new StaticClassTest(); Inner i=sct.new Inner(); } class Inner{ } static class StaticInner{ } }
注意靜態的main()方法只能使用靜態的成員變量或成員函數,因為靜態方法初始化要早於實例對象。