上网的农民
Java咖啡~~~~~
BlogJava
首页
新随笔
联系
聚合
管理
posts - 1, comments - 2, trackbacks - 0
浅谈JAVA内部类
昨天晚上看书时发现一个内部类的例子,写得很简单,不过挺不错的。这里再添加一些农民自己的例子。
书上的例子:
1
/** */
/**
2
*
@author
Tommylee
3
*/
4
public
class
ExtendsClass
5
{
6
class
Class1G
7
{
8
public
Class1G()
{
9
System.out.println(
"
I am Class1G.
"
);
10
}
11
}
12
13
class
Class2G
extends
Class1G
14
{
15
public
Class2G()
{
16
System.out.println(
"
I am Class2G.
"
);
17
}
18
}
19
20
class
Class3G
extends
Class2G
21
{
22
public
Class3G()
{
23
System.out.println(
"
I am Class3G.
"
);
24
}
25
}
26
27
class
Class4G
extends
Class3G
28
{
29
public
Class4G()
{
30
System.out.println(
"
I am Class4G.
"
);
31
}
32
}
33
34
public
void
testClassExtends()
{
35
new
Class4G();
36
}
37
38
public
static
void
main(String[] args)
39
{
40
ExtendsClass ex
=
new
ExtendsClass();
41
ex.testClassExtends();
42
}
43
}
44
执行结果:
I am Class1G.
I am Class2G.
I am Class3G.
I am Class4G.
其实这个例子挺简单,主要就是为了说明继承的时候其构造函数的执行顺序(构造一个类的实例的时候,会一次调用其父类的构造函数。) 大家如果对这个有疑问 可以自己在L40打一个断点,DEBUG一下。
不过,这里其实改造一下代码就可以体现出另外几个知识点。(农民也不知道自己搞全了没 兴趣一下而已)
如 我们可以来尝试几种实例化内部类的方式
第一种方式
1
/** */
/**
2
*
@author
Tommylee
3
*/
4
public
class
ExtendsClass
5
{
6
class
Class1G
7
{
8
public
Class1G()
{
9
System.out.println(
"
I am Class1G.
"
);
10
}
11
}
12
13
class
Class2G
extends
Class1G
14
{
15
public
Class2G()
{
16
System.out.println(
"
I am Class2G.
"
);
17
}
18
}
19
20
class
Class3G
extends
Class2G
21
{
22
public
Class3G()
{
23
System.out.println(
"
I am Class3G.
"
);
24
}
25
}
26
27
class
Class4G
extends
Class3G
28
{
29
public
Class4G()
{
30
System.out.println(
"
I am Class4G.
"
);
31
}
32
}
33
34
//
***modify by Tommyle 06/03 start
35
//
public void testClassExtends(){
36
//
new Class4G();
37
//
}
38
39
public
static
void
main(String[] args)
40
{
41
ExtendsClass ex
=
new
ExtendsClass();
42
ex.
new
Class4G();
43
}
44
45
//
***modify by Tommyle 06/03 end
46
}
47
第二种
1
/** */
/**
2
*
@author
Tommylee
3
*/
4
public
class
ExtendsClass
5
{
6
class
Class1G
7
{
8
public
Class1G()
{
9
System.out.println(
"
I am Class1G.
"
);
10
}
11
}
12
13
class
Class2G
extends
Class1G
14
{
15
public
Class2G()
{
16
System.out.println(
"
I am Class2G.
"
);
17
}
18
}
19
20
class
Class3G
extends
Class2G
21
{
22
public
Class3G()
{
23
System.out.println(
"
I am Class3G.
"
);
24
}
25
}
26
27
class
Class4G
extends
Class3G
28
{
29
public
Class4G()
{
30
System.out.println(
"
I am Class4G.
"
);
31
}
32
}
33
34
//
***modify by Tommyle 06/03 start
35
//
public void testClassExtends(){
36
//
new Class4G();
37
//
}
38
39
public
static
void
main(String[] args)
40
{
41
Class4G CG
=
new
ExtendsClass().
new
Class4G();
42
}
43
44
//
***modify by Tommyle 06/03 end
45
}
46
第三种
1
/** */
/**
2
*
@author
Tommylee
3
*/
4
public
class
ExtendsClass
5
{
6
class
Class1G
7
{
8
public
Class1G()
{
9
System.out.println(
"
I am Class1G.
"
);
10
}
11
}
12
13
class
Class2G
extends
Class1G
14
{
15
public
Class2G()
{
16
System.out.println(
"
I am Class2G.
"
);
17
}
18
}
19
20
class
Class3G
extends
Class2G
21
{
22
public
Class3G()
{
23
System.out.println(
"
I am Class3G.
"
);
24
}
25
}
26
27
class
Class4G
extends
Class3G
28
{
29
public
Class4G()
{
30
System.out.println(
"
I am Class4G.
"
);
31
}
32
}
33
34
//
***modify by Tommyle 06/03 start
35
//
public void testClassExtends(){
36
//
new Class4G();
37
//
}
38
39
public
static
void
main(String[] args)
40
{
41
ExtendsClass.Class4G CG
=
new
ExtendsClass().
new
Class4G();
42
}
43
44
//
***modify by Tommyle 06/03 end
45
}
46
不知道还有没有其他方式 这种情况下的 俺就用过这些了 呵呵 望指教
posted on 2008-06-03 14:35
上网的农民
阅读(124)
评论(0)
编辑
收藏
所属分类:
JAVA
新用户注册
刷新评论列表
只有注册用户
登录
后才能发表评论。
网站导航:
博客园
IT新闻
Chat2DB
C++博客
博问
管理
相关文章:
项目中使用过的一些JSTL标签
浅谈JAVA内部类
<
2025年5月
>
日
一
二
三
四
五
六
27
28
29
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
6
7
正在JAVA的路上努力着,没有目的地,只想一直向前~~~~~~~~
常用链接
我的随笔
我的文章
我的评论
我的参与
最新评论
留言簿
(2)
给我留言
查看公开留言
查看私人留言
随笔档案
(1)
2008年6月 (1)
文章分类
(2)
JAVA(2)
文章档案
(2)
2008年6月 (2)
百科
中文爱百科
可信赖的中文百科全书
搜索
最新评论
1. re: 第一篇,自己的软件人生成长之路
你果然是个狂妄的死农民,欠日的
--SW
2. re: 第一篇,自己的软件人生成长之路[未登录]
你是做对日的吧,呵呵 打好基础再说。
--aaa