当前位置: 代码迷 >> Java相关 >> java 内部类能不能互访,如果能如何互访
  详细解决方案

java 内部类能不能互访,如果能如何互访

热度:8032   发布时间:2013-02-25 21:52:12.0
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();    }}
  相关解决方案