Java 面向对象 之 匿名内部类 实例 2
http://www.verejava.com/?id=16992879139164
/**
知识点: 匿名内部类
题目: 摩托车上装有警报器,当有人碰到摩托车时, 警报器发出报警响声
思路:
1. 抽象出类:
1.1 摩托车(Moto),报警器(Alarm), 人(Person)
2. 找出类的关系:
2.1 摩托车上装有报警器 Alarm -> Moto(1对1)
2.2 警报器有不同品牌的分类 Alarm
3. 找出类属性:
3.1 Moto(品牌,报警器的引用)
3.2 Alarm(品牌)
3.3 Person(姓名)
4. 找出类方法:
4.1 摩托车上装有报警器 Moto{load(Alarm alarm)}
4.2 摩托车被人碰到 Moto{touched(Person p)}
4.3 警报器发出响声 Alarm{beep()}
*/
public class TestMoto3 {
public static void main(String[] args) {
//准备生产一台南方摩托车
Moto moto = new Moto("南方");
moto.load(new Alarm() {
public void beep(Person p) {
System.out.println(p.getName() + " 碰到了警报器 ");
}
});
//这个时候李明过来了
Person p = new Person("李明");
//李明不小心碰到了摩托车, 摩托车发出了报警声
moto.touched(p);
}
}
abstract class Alarm {
//报警器能发出报警声
public abstract void beep(Person p);
}
class Moto {
private String brand;//品牌
private Alarm alarm;//报警器引用
public Moto(String brand) {
this.brand = brand;
}
//装载警报器
public void load(Alarm alarm) {
this.alarm = alarm;
}
//摩托车被人碰到
public void touched(Person p) {
alarm.beep(p);
}
}
class Person {
private String name;//姓名
public Person(String name) {
this.name = name;
}
public String getName() {
return this.name;
}
}

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
-
上一篇
webpack4.0各个击破(6)—— Loader篇
webpack作为前端最火的构建工具,是前端自动化工具链最重要的部分,使用门槛较高。本系列是笔者自己的学习记录,比较基础,希望通过问题 + 解决方式的模式,以前端构建中遇到的具体需求为出发点,学习webpack工具中相应的处理办法。(本篇中的参数配置及使用方式均基于webpack4.0版本) 一. loader综述 loader是webpack的核心概念之一,它的基本工作流是将一个文件以字符串的形式读入,对其进行语法分析及转换(或者直接在loader中引入现成的编译工具,例如sass-loader中就引入了node-sass将SCSS代码转换为CSS代码,再交由css-loader处理),然后交由下一环节进行处理,所有载入的模块最终都会经过moduleFactory处理,转成javascript可以识别和运行的代码,从而完成模块的集成。 loader支持链式调用,所以开发上需要严格遵循“单一职责”原则,即每个loader只负责自己需要负责的事情:将输入信息进行处理,并输出为下一个loader可识别的格式。 实际开发中,很少会出现需要自己写loader来实现复杂需求的场景,如果某个扩展名...
-
下一篇
Java 包 package 关键字
http://www.verejava.com/?id=16992895490365 包其实就是 文件夹 1. 新建一个包 com.pack1 Eclipse 工程上单击右键 -> New -> Package 然后再 com.pack1 下面新建 Person 类 package com.pack1; import com.pack2.Wallet; // 文件夹路径 com/pack2/Wallet public class Person { public Person() { Wallet w = new Wallet(); System.out.println(w.getMoney()); } public static void main(String[] args) { new Person(); } } 2. 新建一个包 com.pack2 在 com.pack2 包下面新建 Wallet 类 package com.pack2; public class Wallet { private double money; public void setMoney(...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- SpringBoot2全家桶,快速入门学习开发网站教程
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS7,8上快速安装Gitea,搭建Git服务器
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- MySQL8.0.19开启GTID主从同步CentOS8
- MySQL数据库在高并发下的优化方案