内部类:类中有实现另一个类 内部类可以使用外部类的成员变量
例:
package test;
public class A {
int i;
class B{
int j;
int funB(){
int c = A.this.i + j;
return c;
}
}
}
实例化:
package test;
public class Test {
public static void main(String args []) {
A a = new A();
A.B b = a.new B();
a.i = 10;
b.j = 20;
System.out.println(b.funB());
}
}
匿名内部类: a类是个接口 b类需要用到a类 test中实现a类接口中的方法就叫匿名内部类
代码:
package test;
interface A {
public void doSomething();
}
package test;
public class B {
public void fun(A a) {
System.out.println("b类的fun函数");
a.doSomething();
}
}
package test;
public class Test {
public static void main(String args []) {
AImp aImp = new AImp();
A a = aImp;
B b = new B();
b.fun(new A() {
@Override
public void doSomething() {
// TODO Auto-generated method stub
System.out.println("我是匿名内部类");
}
});
}
}