outer.name
不知道对不对,
inner class确实不是很有用的

解决方案 »

  1.   

    你用inner class的目的是什么?
    inner class的目的就是一些方法不属于这个类,但是作为一个单独的类又不好访问“父类”的私有方法,因此放在“父类”里面。
    当然它的变量名字就会有限制
      

  2.   

    public class NestedClass2{
      public class InsideClass {
        public void printFather() {
          System.out.println(name);
        }
        public String name = NestedClass2.this.name;
      }  public NestedClass2(String aname) {
        name = aname;
      }  private String name;
      public static void main(String[] args) {
        NestedClass2 n = new NestedClass2("outside class");
        NestedClass2.InsideClass i = n.new InsideClass();
        i.printFather();  }
    }这样可以这个问题怎么能称得上是变态    变量都有用于的
      

  3.   

    不到万不得已最好不要用inner class
      

  4.   

    public class NestedClass2{
    public NestedClass2(String aname){
    name=aname;
    }
    public class InsideClass {
    public void printFather (){
    System.out.println(name);
                System.out.println( NestedClass2.this.name );
    }
    public String name="inside class";
    }
    private String name;
    public static void main(String[] args){
    NestedClass2 n=new NestedClass2("outside class");
    NestedClass2.InsideClass i = n.new InsideClass();
    i.printFather();
    }
    }
      

  5.   

    (冷血)说得不错。NestedClass2.this指的便是外层类当前的实例!
      

  6.   

    通过各种变态手法可以获得各种变态要求,好的设计可以避免拙劣的编程!呵呵!个人意见,在开发中,这种写法没有任何意义,共通会定义一个get函数来解决,整个程序又干净又易读!!
      

  7.   

    我觉得这种写法没什么不好可以清楚地知道我是调用外层一个全局变量好像很多人不推荐使用this,但我个人觉得使用this很不错,一方面不容易写错,另一方面我立刻知道一个变量是全局的还是函数内部的。
      

  8.   

    public class TestInnerClass {
        public TestInnerClass(String aname) {
            name = aname;
        }    public class InsideClass {
            public void printFather() {
    //            System.out.println(name);
                System.out.println(TestInnerClass.this.name);
            }        public String name = "inside class";
        }    private String name;
        public static void main(String[] args) {
            TestInnerClass n = new TestInnerClass("outside class");
            TestInnerClass.InsideClass i = n.new InsideClass();
            i.printFather();    }
    }
    这有什么奇怪的?
      

  9.   

    同意冷血inner class 访问 outter class :OutterClass.this.varName