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()); } }
原文:http://www.cnblogs.com/hnzyyTl/p/4902604.html