标题:在for循环中定义内部类的问题
只看楼主
Grace_TT
Rank: 1
等 级:新手上路
威 望:1
帖 子:324
专家分:0
注 册:2005-12-21
 问题点数:0 回复次数:8 
在for循环中定义内部类的问题
在下面的程序中:
class Outer
{ final int i=100;



int outer_x=100;
void test()
{
for(int i=0;i<10;i++)
{
class Inner
{
void display()
{
System.out.println("display:outer_x"+outer_x);
}
}
Inner inner=new Inner();
inner.display();
}


}
}
class InnerClassDemo
{
public static void main(String args[])
{
Outer outer=new Outer();
outer.test();
}
}

这个for循环中,每次循环在满足循环条件的情况下都要定义一次类class Inner,共定义了10次,我想知道为什么这不是类的重定义,因为编译能通过;同样,每次循环都生成了一个Inner类的对象inner,共生成了10个,为什么也能通过编译,而没有出现重定义的错误?

谢谢!!

[此贴子已经被作者于2006-1-15 17:50:50编辑过]

搜索更多相关主题的帖子: 部类 定义 
2006-01-15 13:19
Jhyvin
Rank: 2
等 级:新手上路
威 望:4
帖 子:81
专家分:0
注 册:2005-12-29
得分:0 

因为都是局部变量咯 出了for循环就失去了生命周期


一万年太久,只争朝夕! 从此不再乱翻书!!!
2006-01-15 18:11
Grace_TT
Rank: 1
等 级:新手上路
威 望:1
帖 子:324
专家分:0
注 册:2005-12-21
得分:0 
但是这个类class Inner和对象inner的定义都是在for循环的内部呀,还没出for循环哪。
2006-01-15 18:20
Jhyvin
Rank: 2
等 级:新手上路
威 望:4
帖 子:81
专家分:0
注 册:2005-12-29
得分:0 
出了  一次循环就是一个生命周期

一万年太久,只争朝夕! 从此不再乱翻书!!!
2006-01-15 18:44
weizheng
Rank: 1
等 级:新手上路
威 望:2
帖 子:286
专家分:0
注 册:2005-4-21
得分:0 

搞那么深奥的名词干吗?晕,你说出来她也不一定能

理解.

[此贴子已经被作者于2006-1-17 20:05:30编辑过]


温和如玉,完美纯正。
2006-01-17 20:05
Grace_TT
Rank: 1
等 级:新手上路
威 望:1
帖 子:324
专家分:0
注 册:2005-12-21
得分:0 
呵呵,那你说个通俗易懂的吧。
2006-01-17 21:33
伴我同行
Rank: 1
等 级:新手上路
帖 子:103
专家分:0
注 册:2005-9-13
得分:0 
因为都是在FOR循环的内部,FOR语句一次编译一个类,一共编译了十次,就是十个,我认为是这样

1.可悲的是生命不会重来; 2.可喜的是生命不需要重来。
2006-01-20 13:56
mqeefqfn
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2008-9-30
得分:0 
class   Inner并未重复定义,只编译一次.   
  Inner   inner=new   Inner();重复运行了十次,   
  但每次的   inner   都不一样,inner是个局部变量   
  可通过修改   void   display()看出   
void   display()
{   
  System.out.println("display:outer_x"+outer_x);   
  System.out.println("this:"+this);   
 }
2008-09-30 21:51
mqeefqfn
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2008-9-30
得分:0 
...   
  display:outer_x100   
  this:inner$1Inner@d9f9c3   
  display:outer_x100  
  this:inner$1Inner@9cab16   
  display:outer_x100  
  this:inner$1Inner@1a46e30   
  ....   
  @后面的都不同
2008-09-30 21:54



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-42932-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.873508 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved