使用靜態的類的只有一種情況,就是在內部類中。如果是在外部類中使用static
關鍵字是會報錯的。
靜態的內部類中不能訪問外部類中非靜態的變數和方法。
class outer
public
static
class
inner
}}
再來對比普通內部類的使用
class outer
public
class
inner
}}
證明了一點,在非靜態的內部類中能夠使用外部類中靜態的方法和變數
靜態的內部類的例項化可以直接通過外部類.
的形式來進行
public
class
testone
}class outer
public
static
class
inner
}}
對比普通的內部類
public
class
testone
}class outer
public
class
inner
}}
普通的內部類必須通過外部類的物件來進行例項化,否則出現問題,需要注意的是,one.new inner()
的寫法。
靜態內部類是不同使用普通內部類的例項化形式的
public
class
testone
}class outer
public
static
class
inner
}}
對於靜態內部類我們可能在平時的程式設計環境中不多見,但是在某些專案中,很多都使用了靜態內部類,這種場景一般針對於靜態內部類不需要外部類的資源,而外部類需要使用內部類的時候。
public
class
testone
}class outer
public string getname()
public
intgetage()
//靜態內部類
public
static
class
inner
public inner setname(string name)
public inner setage(int age)
public outer returnouter()
}//外部類實現
public
static outer two()
}
上面的**中就是靜態內部類不使用外部類的資源,而是外部類使用靜態內部類中的資料,當然,上面只是個例子為了敘述這種使用場景,比如說在某些複雜的專案中,這種寫法避免個各種繼承的麻煩,並且外部類中實現了與內部類中資料的互動。 Java內部類 靜態內部類
靜態內部類是外部類的靜態成員,不依賴於外部類的物件而存在,因此在外部類外面建立靜內部類物件時不需要首先建立外部類的物件 靜態內部類也可以稱為靜態巢狀類或頂級巢狀類。靜態內部類與外部類物件之間不存在著對成員的共享關係,靜態內部類其實已經脫離了外部類的控制 static關鍵字只是說明其在建立物件的時候不...
Java內部類之靜態內部類
靜態內部類 巢狀內部類 內部類定義時加上static關鍵字。可以使用public protected default private修飾符。只可以訪問外部類的靜態成員和靜態方法,包括了私有的靜態成員和方法。生成靜態內部類物件的方式為 outerclass.innerclass innerobj ne...
Java內部類應用 靜態內部類
一 點睛 如果使用static來修飾乙個內部類,則這個內部類就屬於外部類本身,而不屬於外部類的某個物件。因此使用static修飾的內部類被稱為類內部類,也稱為靜態內部類。static關鍵字不可修飾外部類,但可修飾內部類。二 實戰 靜態內部類不能訪問外部類的例項成員,只能訪問外部類的類成員 1 點睛 ...