static的话是所有outer class member公用,还是所有同一个outer class member 的inner class member共有呢?

解决方案 »

  1.   

    假设
    class Out{
       Inner i1=new Inner();
       Inner i2=new Inner();
       class Inner{ 
          static int i;
       }
    }Out o1=new Out(); Out o2=new Out();
    那么是到底是有一个i,即o1.i1.i=o1.i2.i=o2.i1.i=o2.i2.i
    还是2个,o1.i1.i=o1.i2.i,!=, o2.i1.i=o2.i2.i
      

  2.   

    在《thinking in java 2nd》中,关于你这个问题有这样一句解释:Non-static inner class内的所有数据和函数都只能够位于class的外层,所以它不能够拥有任何static data、static fields、static inner class。然而static inner classes可以拥有那些东西。我也不知道如果拥有静态成员会产生什么情况。to shine333(shine):
        如果non-static inner class可以拥有static成员,那么应该产生2个吧?一个是o1.i1.i=o1.i2.i,一个是o2.i1.i=o2.i2.i。但产生这样的结果是非法的吗?                '''             
                   (0 0)            
       +-----oOO----(_)------------+
       |                           |
       |         有感而发!         |
       |                           |
       |                           |
       +------------------oOO------+
                  |__|__|           
                   || ||            
                  ooO Ooo
      

  3.   

    to: shine333(shine)
    如果可以有static,当然是共同拥有一个i。请问这样有什么不好或者不对劲的地方吗?