public class Outer {
private int i;
public static int k = 10;
/*
* 外部类不能直接访问内部类,可通过一个引用访问(可以访问到内部类中的私有成员)
*/
public void visitInner(inner inn){
inn.i = 1;
inn.j = 2;
}
public class inner{
private int i;
private int j;
public void test(){
System.out.println("kaishi");
}
/*
* 如果内部类中的成员名与外部类的成员名相同,内部类中如果直接返回的为内部类中的成员
*/
public int getI(){
return i;
}
public int getJ(){
return j;
}
/*
* 实例内部类中的方法可以返回外部类中的所有成员
*/
public int getK(){
return k;
}
//返回外部类的成员变量i
public int getOuterI(){
return Outer.this.i;
}
}
public int getI(){
return i;
}
}
public class Testinner {
/**
* @param args
*/
public static void main(String[] args) {
//定义方法一
//Outer outer = new Outer();
//Outer.inner inn = outer.new inner();
//定义方法二
Outer outer = new Outer();
inner inn = outer.new inner();
//调用外部类的方法给内部类赋值
outer.visitInner(inn);
//输出内部类中的成员变量I
System.out.println(inn.getI());
//输出内部类中的成员变量J
System.out.println(inn.getJ());
//输出外部类静态属性K
System.out.println(inn.getK());
//输出外部类中的I
System.out.println(inn.getOuterI());
}
}