1、内部类
class A
{
int i;
//B可以随意使用外部类的成员变量
class B
{
int j;
int funB()
{
int result = i+j;
//int result = A.this.i + this.j; 与上边的语句功能相同
return result;
}
}
}
测试内部类
class Test
{
public static void main(String args [])
{
A a = new A();
A.B b = a.new B();
a.i = 3;
b.j = 4;
int result = b.funB();
System.out.println(result);
}
}
2、匿名内部类
interface A
{
public void doSomeThing();
}
class B
{
public void fun(A a)
{
System.out.println("B类的fun函数");
a.doSomeThing();
}
}
class Aimple implements A
{
public void doSomeThing()
{
System.out.println("doSomeThing");
}
}
写匿名内部类
class Test
{
public static void main(String args [])
{
//Aimple aimple = new Aimple();
B b = new B();
//b.fun(aimple);
//b.fun的圆括号内的就是匿名内部类,该语句用于实现A的借口与A.java功能相同</span>
b.fun(new A(){
public void doSomeThing()
{
System.out.println("匿名内部类");
}
});//分号不可以省略</span>
}
}