日期:2014-05-20  浏览次数:20990 次

java 内部类能不能互访,如果能怎么互访
public class A{
  public static void main(String[] args){
  class A1{
  }
  class A2{
  }
  // A1 和 A2之间互相访问?
  }
}

------解决方案--------------------
static 静态就可以
------解决方案--------------------
啥叫互相访问呢?
首先A要知道B的对象才行,要门B知道A的对象,要么就如楼上所说的使用static field或者static method
------解决方案--------------------
同ls,最好避免用内部类
------解决方案--------------------
可以互相调用的
static的话就可以直接new,不是的话就得new A().new A1()
------解决方案--------------------
不是静态的话得final变量,不过你这用法太离谱了。。估计设计不够到位
class A1{

public void test()
{

}
}
final A1 a = new A1();
class A2{

public void test(){
a.test();
}
}
------解决方案--------------------
呵呵 内部类而已
------解决方案--------------------
设计内部类,不就是防止其他类的访问嘛

------解决方案--------------------
你指的相互访问是什么?
Java code
public class A
{
    class A1{
        int a1 = 1;
        
        //你指的相互访问是这样的吗?
        public void test()
        {
            A2 a = new A2();
            System.out.println(a.a2);
        }
    }
    class A2{
        int a2 = 2;
        //你指的相互访问是这样的吗?
        public void test()
        {
            A1 a = new A1();
            System.out.println(a.a1);
        }
    }
    public static void main(String[] args)
    {
       //你指的相互访问是这样的吗?
        A1 a1 = new Outer().new A1();
        a1.test();
        
        A2 a2 = new Outer().new A2();
        a2.test();
    }
}