绍兴网站建设 微德福,如何填写网站开发验收单,石狮网站建设报价,摄影师个人网站模板匿名内部类#xff08;相当于此类没有名字#xff09;#xff1a;
1.什么是内部类#xff1a;在类的内部又定义了一个新的类
2.内部类的分类#xff1a;
静态内部类#xff1a;类似静态变量
实例内部类#xff1a;类似实例变量
局部内部类#xff1a;类似局部变量…匿名内部类相当于此类没有名字
1.什么是内部类在类的内部又定义了一个新的类
2.内部类的分类
静态内部类类似静态变量
实例内部类类似实例变量
局部内部类类似局部变量
3.使用内部类编写的代码可读性很差能不用尽量不用
4.匿名内部类是局部内部类中的一种因为这个类没有名字而得名叫匿名内部类
5.不建议使用匿名内部类因为一个类没有名字就意味着没有办法重复使用另外代码会太乱可读性就会很差
6.匿名内部类的特征new 接口名(){} 后面的{} 代表了对接口的实现 代码演示
import java.util.Objects;/**/
class Test01{//静态内部类static class Inner1{}//实例内部类class Inner2{}public void doSome(){//局部内部类class Inner3{}}public void doOther(){//外面的方法访问不了上面的局部内部类访问实例内部类的时候需要new[但是我们一般很少这样去使用]new Test01().new Inner2();}//main方法的入口public static void main(String[] args){//调用Math中的mySum方法Math mathnew Math();//这样写代码表示这个类名是有的类名是ComputeImpl//math.mySum(new ComputeImpl() ,100,100);//使用匿名内部类这个{}就代表对这个接口的实现,表示这个ComputeImpl这个类没名字了math.mySum(new Compute(){public int sum(int a,int b) {return a b;}} ,100,100);}
}//负责计算的接口
interface Compute{//抽象方法int sum(int a,int b);
}
/*
//你会自动在这里编写一个Compute接口的实现类
class ComputeImpl implements Compute{public int sum(int a,int b){return ab;}
}
*///数学类
class Math{//数学求和的方法public void mySum(Compute compute,int x,int y){int retValuecompute.sum(x,y);System.out.println(xxyyretValue);}
}