class Outer
{
int outer_1=100;
void test()
{
Inner in=new Inner(this);
in.display();
}
   
 public static void main(String [] args)
 {
  Outer outer=new Outer();
  outer.test();
 }   
}
class Inner
{
 Outer outer;
 public Inner (Outer outer)
 {
     this.outer=outer;
 }
 void display()
    {
     System.out.println("outer_1="+outer.outer_1);
    }
}
这个是讲到内部类的时候,如果不用内部类的话,编程就会变得如此复杂。用内部类的情况读懂了,但是写成这样没看懂。
先看main 生成了对象Outer类的outer之后 是看Inner类的 构造函数吗? this.outer=outer 又是什么意思?
 display方法中是怎样调用的Outer类中的成员outer_1的?是因为两个并行的类不能互相调用对方类中的成员所以才变得如此复杂吗? 不懂得太多,感谢高手指教! 以下是用内部类时候的编程方法。
class Outer
{
int outer_1=100;
void test()
{
Inner in=new Inner();
in.display();
}
    class Inner
      {
       void display()
     {
     System.out.println("outer_1="+outer_1);
     }
      }     
   
 public static void main(String [] args)
 {
  Outer outer=new Outer();
  outer.test();
 }   
}
     
    

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【kinghukyoun】截止到2008-07-10 15:13:23的历史汇总数据(不包括此帖):
    发帖的总数量:1                        发帖的总分数:20                       每贴平均分数:20                       
    回帖的总数量:2                        得分贴总数量:0                        回帖的得分率:0%                       
    结贴的总数量:1                        结贴的总分数:20                       
    无满意结贴数:0                        无满意结贴分:0                        
    未结的帖子数:0                        未结的总分数:0                        
    结贴的百分比:100.00%               结分的百分比:100.00%                  
    无满意结贴率:0.00  %               无满意结分率:0.00  %                  
    敬礼!
      

  2.   

    答案肯定~ 
    this.outer=outer 是把 Outer类的对象outer 传到Inner类中,当Inner类的一个属性。
    不过这种做法似乎
      

  3.   

    哪里不明白???~内部类就是类的一个内部属性。跟
    private String str = null;
    str是类的一个属性一样 没区别。直接可以在类中使用自己的内部类。
    第一种做法,2个类,直接需要传递相关的属性和方法,那好。
    一个作为主类,一个是副类。主和副的关系就是在主类中定义一个副类的实例。
    然后对类赋值this.outer=outer   这样就可以使用副类中的方法和属性了。
    你先不要把他看成一个类对象。看成另外类的一个属性 操作~
      

  4.   


    就是传Outer的对象到Inner去就这么简单display()方法中System.out.println("outer_1="+outer.outer_1);  这里调用的就是Outer类中的成员outer_1的
      

  5.   

    this.outer是什么意思?
    this是对象,outer是this的成员,最后把outer传给this.outer的意思吗?
    我开始看java不到一个星期,再加上脑袋比较笨,一时半会儿总是转不过弯。
    this语句是昨天看的,好像是说方法所属的对象的意思吧。
    不过用到这里又是不太明白了。
    huangyangweiyue 
    麻烦你能不能把第一个编成的总流程给我讲一下吗?就是先阅读哪一部分,然后阅读哪一部分。。
    谢谢。
    内部类我大概看懂了。
    因为我是新手所以可用分不多,今天只有50分。
    先谢谢了
      

  6.   

     jingulang 
    又看到你了,昨天也是你帮我回答的。谢谢。
      

  7.   

    public Inner (Outer outer) 

      this.outer=outer;  
    } this.outer  就是当前这个类里的你声明的Outer outer;
    outer 是传参进来的outer
    意思就是你class Inner里声明的对象引用outer指向你传参数进来的这个outer因为他俩名字一样  所以用this.outer区分一下。