// File:  OuterClass.java
// Passing a handle to an outer class and a handle to an inner class

public class OuterClass {

    private String x = "outer";

    public OuterClass() {
        new InnerClass(this);
    }

    public void OuterClassInnerClass(InnerClass ii) {
        System.out.println("OuterClassInnerClass...  ii.y = " + ii.y);
    }

    public class InnerClass {
        private String y = "inner";

        InnerClass(OuterClass tt) {
            System.out.println("InnerClass...  tt.x = " + tt.x);
            OuterClassInnerClass(this);
        }
    }

    static public void main(String [] args) {
        new OuterClass();
    }

}

