Java
本类阅读TOP10
作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站
分類
Static Member Class
l 類似containing class的static member,與containing class的instance沒有關聯。
Member Class
l 類似containing class的instance field或instance method。每個member class的instance是與outer class的instane結合在一起的。
Local Class
l 有效範圍只限於這個區塊內。
l local var的生命,始於java interpreter進入它所在的block執行,結束於java interpreter離開它所在的block。
l local class的instance的生命比local var還長(見範例)。
l 若一個class只會在某個method內被使用,可使用local class。
Anonymous Class
(匿名Class)
l 是local class的一種,但沒有class name。
l 不能有consturctor(可用instance init代替)。
l 若某class只會被使用一次,可使用anonymous class。
可宣告
成員
static members
instance member
yes
Yes
Meber Class
No(但可宣告常數static final)
none
Inner可存取
之範圍
No
Yes(包含繼承來的)
Yes(區塊內的”final” local var也可以)
None
使用
方式
Outer.Inner in = new Outer.Inner() ;
Outer.Inner in = new Outer().new Inner() ;
(見範例)
l new ClassName ([paralist]) {class body}
l new InterfaceName () {class body}
可以
l inner class內的程式碼可像outer class的method般直接存取outer class的fields及methods。
l 在containing class中,可直接使用inner class的class name,但在containing class外,須使用inner class 的qualified name—OuterClassName.InnerClassName。
不可以
l inner class的命名不可與它的outer class或package的命名相同。(但field與method的命名可)
相关软件: