Java

本类阅读TOP10

·使用MyEclipse开发Struts框架的Hello World!(录像1)
·hibernate配置笔记
·AOP编程入门--Java篇
·linux下Tomcat 5.0.20 与 Apache 2 安装/集成/配置
·在win2003下整合了整合Tomcat5.5+ apache_2.0.53+ mod_jk_2.0.47.dll
·构建Linux下IDE环境--Eclipse篇
·Jsp 连接 mySQL、Oracle 数据库备忘(Windows平台)
·ASP、JSP、PHP 三种技术比较
·Tomcat5.5.9的安装配置
·AWT GUI 设计笔记(二)

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
Inner classes

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

分類

Static Member Class

l           類似containing classstatic member,與containing classinstance沒有關聯。

Member Class

l           類似containing classinstance fieldinstance method。每個member classinstance是與outer classinstane結合在一起的。

Local Class

l           有效範圍只限於這個區塊內。

l           local var的生命,始於java interpreter進入它所在的block執行,結束於java interpreter離開它所在的block

l           local classinstance的生命比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

Static Member Class

yes

Yes

Meber Class

No(但可宣告常數static final)

yes

Local Class

No(但可宣告常數static final)

Yes

Anonymous Class

none


Inner可存取

之範圍

 

static members

instance member

Static Member Class

yes

No

Meber Class

Yes(包含繼承來的)

Local Class

Yes(區塊內的”final” local var也可以)

Anonymous Class

None


使用

方式

Static Member Class

Outer.Inner in = new Outer.Inner() ;

Meber Class

Outer.Inner in = new Outer().new Inner() ;

Local Class

(見範例)

Anonymous Class

l           new ClassName ([paralist]) {class body}

l           new InterfaceName () {class body}


可以

l           inner class內的程式碼可像outer classmethod般直接存取outer classfieldsmethods

l           containing class中,可直接使用inner classclass name,但在containing class外,須使用inner class qualified name—OuterClassName.InnerClassName


不可以

l           inner class的命名不可與它的outer classpackage的命名相同。(fieldmethod的命名可)



来自:【 Garfield 的 SCJP 閱讀筆記 】


相关文章

相关软件