当前位置: 首页 > news >正文

房地产网站做编辑刚刚入行科技创新绘画作品图片

房地产网站做编辑刚刚入行,科技创新绘画作品图片,广州建站服务商,什么app推广佣金多匿名内部类 1. 定义:无类名(底层自动分配类名“外部类名$1”),既是类也是对象,定义在外部类的局部位置,例如方法体和代码块中,通过new类或接口并在大括号里重写方法来实现。 2. 使用场景&…
  • 匿名内部类

1. 定义:无类名(底层自动分配类名“外部类名$1”),既是类也是对象,定义在外部类的局部位置,例如方法体和代码块中,通过new类或接口并在大括号里重写方法来实现

2. 使用场景:需要实现接口,重写接口或类的方法,但只需要用到一次的类,可以用匿名内部类来简化开发,省去开发人员手动创建类和实现接口的过程,将这些过程交给编译器底层实现。直接new接口或类,在大括号里面实现所需的方法就可以了。编译类型是接口,运行类型是匿名内部类。

3. 匿名内部类并不是真的没有类名,只是开发人员交给底层去分配,实际上系统底层会给匿名内部类分配类名,规则是“外部类名$X”,X是匿名内部类的编号,从1开始。

4. 使用匿名内部类必须new分配空间,所以它既是类也是对象,这个类分配完空间后就不能再使用了

public class AnonymousInnerClass {public static void main(String[] args) {Outer04 outer04 = new Outer04();outer04.method();}
}class Outer04 { // 外部类private int n1 = 10; // 属性// 基于接口的匿名内部类的使用public void method() { // 方法IA ia = new IA() {@Overridepublic void cry() {// 重写接口中的方法System.out.println("重写的方法...");}};ia.cry();System.out.println("匿名内部类的运行类型是: " + ia.getClass());System.out.println("============================");// 基于类的匿名内部类的使用Father father = new Father("jack") {@Overridepublic void test() {System.out.println("重写的方法...");}};father.test();System.out.println("匿名内部类的运行类型是: " + father.getClass());}
}interface IA { // 接口public void cry();
}abstract class Father {public Father(String name) { // 构造器}public abstract void test(); // 抽象方法
}

运行结果:

5. 因为匿名内部类返回的是一个对象,所以可以直接在后面通过"匿名内部类.方法名(参数列表)"的形式来直接调用方法。

public class AnonymousDetail {public static void main(String[] args) {Outer outer = new Outer();outer.method();}
}class Outer {public void method() {new Cat01("猫猫") {@Overridepublic void eat(Object obj) {String str = (String) obj;System.out.println("猫吃: " + str);}}.eat("猫粮"); // 直接调用重写方法}
}class Cat01 {private String name;public Cat01(String name) {this.name = name;}public void eat(Object obj) {}
}

6. 和局部内部类一样,匿名内部类也可以直接访问外部类的所有成员,但外部类不能直接访问内部类的成员

7. 和局部内部类一样,匿名内部类访问外部类成员依然要用“外部类.this.外部类属性名”的方式访问。

  • 匿名内部类的最佳实践
public class AnonymousExercise02 {public static void main(String[] args) {CellPhone cellPhone = new CellPhone();cellPhone.alarmClock(new Bell() {@Overridepublic void ring() {System.out.println("起床啦...");}});cellPhone.alarmClock(new Bell() {@Overridepublic void ring() {System.out.println("闹铃响了...");}});}
}interface Bell{void ring();
}class CellPhone {public void alarmClock(Bell bell) {bell.ring();}
}

运行结果:

http://www.yayakq.cn/news/819849/

相关文章:

  • 成都专业的网站建设公司wordpress 登录地址
  • 网站过度优化精品课程网站建设验收单
  • 深圳进出口贸易有限公司aso优化哪家好
  • 安徽省工程建设信息官方网站精品课程网站建设内容
  • 塑胶加工东莞网站建设技术支持移动网站网上营业厅
  • 做一个网站花多少钱家居企业网站建设效果
  • cm域名做网站世界新闻头条最新消息
  • 湖北什么网站建设值得推荐聚震网站开发
  • 山东省建设工程领域挂证存颖网站广州本地新闻
  • 类似商城网站开发策划书中山移动网站建设报价
  • 适合学生做网页练习的网站seo实战培训教程
  • 福州网站推广wordpress+引用+样式
  • 网站建设的好公司阿里云域名怎样做网站
  • 网站淘客宝怎么做福建就福建省住房与城乡建设厅网站
  • 基于html5的电商网站开发设计师网上接私单app
  • 男女插孔做暖暖试看网站大全网店无货源怎么做
  • 做套网站多少钱cms系统推荐
  • 公司网站注销流程深圳制作网站培训机构
  • 做网站哪种编程语言好建设门户网站的重要性
  • 南京 高端网站建设wordpress 公众号采集器
  • 重庆专业的网站建设百度安装免费下载
  • 秦皇岛哪家做网站好一对一专属定制方案
  • 八宿县网站seo优化排名雨果网跨境电商官网
  • app与移动网站开发资料做英文版网站
  • 只做网站的人员工资用手机制作app工具
  • 网站建设预算申请如何写品牌推广网站策划设计
  • jsp网站开发详解 赵增敏房地产网站建设案例
  • 第一网站ppt模板免费下载wordpress5.0.3下载
  • 衡水建网站的公司绵竹seo
  • iis上部署手机网站自己设计图片的软件