-
匿名内部类:
- 内部类:在类的内部又定义了一个新类。
- 内部类分类:
- 静态内部类:类似于静态变量
- 实例内部类:类似于实例变量
- 局部内部类:类似于局部变量
class Test{ //该类在类的内部,被称为内部类,static修饰的为静态内部类。 static class Inner1{ } //实例内部类 class Inner2{ } public void doSome(){ //局部内部类 class Inner3{ } } public void doOther(){ } public static void main(String[] args){ //调用MyMath中的mysum方法 MyMath mm = new MyMath(); /* Compute c = new ComputeInpl(); mm.mySum(c,100,200); */ //这个就是匿名内部类定义的方法。这是对接口的实现。 只能用一次。类似于C++中的lambda表达式。 mm.mySum(new Compute(){ public int sum(int a,int b){ retrun a+b; } },100,200); } } interface Compute{ //抽象方法 int sum(int a,int b); } //使用匿名内部类可以不用写这个 /* class ComputeInpl implements Compute{ public int sum(int a,int b){ return a+b; } } */ class MyMath{ public void mySum(Compute c,int x,int y){ int ret = c.sum(x,y); System.out.println(ret); } }
-
使用内部类编写的可读性差。
-
学习匿名内部类,是要看懂别人的代码,缺点:复杂,只能使用一次。
网友评论