public class InnerClass { /* * 内部类的优点1:对外可以隐藏内部类的名称,体现了封装性 * 优点2:可以通过内部类实现多个接口,使代码更清晰 * 优点3:内部类可以访问外部类的变量,但是不可以修改 * 有四种内部类:1,普通内部类;2,静态内部类;3,局部内部类;4,匿名内部类 */ //普通内部类 int n=3; private class AA implements A{ private int i=2; @Override public int value() { System.out.println(n*i); return i; }
} protected class BB implements B { String bString; BB(String bString){ this.bString=bString; } @Override public String print() { System.out.print(bString); return bString; }
} public A a(){ return new AA(); } public B b(String bString){ return new BB(bString); }
public class Test {
/** * @param args * */ public static void main(String[] args) { // TODO Auto-generated method stub String bString="88888"; InnerClass innerClass=new InnerClass(); A aa=innerClass.a(); aa.value(); B bb=innerClass.b(bString); bb.print(); }
}
public interface A { int value(); } public interface B { String print(); }