class Inner {
        String s2 = "ft";
        Inner (String test_s2) //参数为new Test().s2
        {
            System.out.println("Inner s = " + s2);  //1
            System.out.println("outer s = " + s1);  //2
            System.out.println("outer s = " + test_s2); //3
        }    
        
    

解决方案 »

  1.   

    另外,不要new Test,因为还有其他的方法会改变这个s2,所以重新new的和我要打印的可能不同
      

  2.   

    public class Test {
        String s1 = "keyi";
        String s2 = "kao";     class Inner {
            String s2 = "ft";
            Inner () {
                System.out.println("Inner s = " + s2);  //1
                System.out.println("outer s = " + s1);  //2
                System.out.println("outer s = " + Test.this.s2); //3
            }     }
        public static void main(String args[])
        {
         Test t =new Test();
         Inner tin =t.new Inner();
        }
    }
      

  3.   

    我的解答:
    public class Testinner
    {
        public static String test = "test";    public static void main(String[] args)
        {
             new Testinner();
        }    public Testinner()
        {
            new Inner();
        }    class Inner
        {
            private String s1 = "ft";        public Inner()
            {
                System.out.println("Inner s = " + this.s1);
                System.out.println("outer s = " + test);
            }
        }
    }