匿名内部类:
1.什么是内部类?
- 在类的内部定义了一个新的类,被称为内部类
2.内部类的分类:
-
静态的内部类:类似于静态变量
-
实例内部类:类似于实例变量
-
局部内部类:类似于局部变量
3.匿名内部类是局部内部类的一种,因为这个类没有名字而得名
//三种内部类
public class Inclass {
//静态的内部类
static class Inner1{
}
//实例内部类
class Inner2{
}
//方法类
public void doSome(){
//局部变量
int i = 100;
//局部内部类
class Inner3{
}
}
public class Inclass {
public static void main(String[] args) {
MMath m = new MMath();
Compute c = new Computel();
m.sum(c,100,200);// m.sum(new Computel(), 100,200);
}
}
//接口(负责计算两数之和)
interface Compute{
//抽象方法
int sum(int a, int b);
}
class Computel implements Compute{
public int sum(int a,int b){
return a+b;
}
}
class MMath{
public void sum(Compute c,int x,int y){
int a = c.sum(12,2);
System.out.println(a);
}
}
使用匿名内部类之后
public static void main(String[] args) {
MMath m = new MMath();
//直接合并
m.sum(new Compute() {
public int sum(int a, int b) {
return a+b;
}
},100,200);
//使用匿名内部类,表示这个Computel这个类的名字没有了
//后边{}直接实现了接口
}
}
//接口(负责计算)
interface Compute{
//抽象方法
int sum(int a, int b);
}
class MMath{
public void sum(Compute c,int x,int y){
int a = c.sum(12,2);
System.out.println(a);
}
}