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()方法只能使用靜態的成員變量或成員函數,因為靜態方法初始化要早於實例對象。
