public class test{  
private test clsFromInner = null;
private String name;
private void set_Name(String str){
name = str;
}
public String get_Name(){
return name;
}
public void changeName(String name){
set_Name(name);
}

public void set_Class(test t){
clsFromInner = t;
}

public test get_Class(){
return clsFromInner;
} public void showChange(int index,String name){
innerClass inCls = new innerClass();
set_Class(inCls.get_OutClass()); if(name != null){
inCls.changeName(name);

if(index > 0){
inCls.printName();
}
}
    public static void main(String[] args){  
test t = new test();
t.changeName("Your Name");
System.out.println(t.get_Name()); t.showChange(2, "My Name");
test out = t.get_Class();
System.out.println(out.get_Name());

}

public class innerClass{
test obj = null;
public innerClass(){
obj = new test();
} public void printName(){
System.out.println(obj.get_Name());
} public void changeName(String name){
obj.changeName(name);
}
public test get_OutClass(){
return obj;
}
}
}大概就是这个意思吧。