Java适配器模式的简单应用
2014-02-22 00:13
330 查看
对于刚从工厂生产出来的商品,有些功能并不能完全满足用户的需要。因此,用户通常会对其进行一定的改装工作。编写程序为普通的汽车增加GPS定位功能,借此演示适配器模式的用法。
思路分析:
这个问题的需求是,在主方法中分别设定普通汽车和GPS汽车的车名和速度,并分别输出普通汽车和GPS汽车的信息;
首先需要定义一个父类代表普通汽车,它包括两个成员变量分别表示车名和速度,四个成员方法分别设置及获取车名和速度,并重写toString()方法使得该父类返回一个字符串类型的引用;
定义一个接口,在该接口中定义提供定位功能的方法;
定义一个子类,该子类继承父类并实现接口,包括一个成员方法,该方法利用汽车的速度来确定汽车的位置,并重写toString()方法使得该子类返回一个字符串类型的引用。
代码如下:
效果如图:
思路分析:
这个问题的需求是,在主方法中分别设定普通汽车和GPS汽车的车名和速度,并分别输出普通汽车和GPS汽车的信息;
首先需要定义一个父类代表普通汽车,它包括两个成员变量分别表示车名和速度,四个成员方法分别设置及获取车名和速度,并重写toString()方法使得该父类返回一个字符串类型的引用;
定义一个接口,在该接口中定义提供定位功能的方法;
定义一个子类,该子类继承父类并实现接口,包括一个成员方法,该方法利用汽车的速度来确定汽车的位置,并重写toString()方法使得该子类返回一个字符串类型的引用。
代码如下:
public class Car { private String name; //表示名称 private double speed; //表示速度 public String getName() { return name; } public void setName(String name) { this.name = name; } public double getSpeed() { return speed; } public void setSpeed(double speed) { this.speed = speed; } @Override public String toString() { //重写toString()方法 StringBuilder sb = new StringBuilder(); sb.append("车名:" + name + ", "); sb.append("速度:" + speed + "千米/小时"); return sb.toString(); } } import java.awt.Point; public interface GPS { Point getLocation(); //提供定位功能 } import java.awt.Point; public class GPSCar extends Car implements GPS { @Override public Point getLocation() { //利用汽车的速度来确定汽车的位置 Point point = new Point(); point.setLocation(super.getSpeed(), super.getSpeed()); return point; } @Override public String toString() { //重写toString()方法 StringBuilder sb = new StringBuilder(); sb.append(super.toString()); sb.append(", 坐标:(" + getLocation().x + ", " + getLocation().y + ")"); return sb.toString(); } } public class Test { public static void main(String[] args) { System.out.println("自定义普通的汽车:"); Car car = new Car(); car.setName("Adui"); car.setSpeed(60); System.out.println(car); System.out.println("自定义GPS汽车:"); GPSCar gpsCar = new GPSCar(); gpsCar.setName("Audi"); gpsCar.setSpeed(60); System.out.println(gpsCar); } }
效果如图:
相关文章推荐
- Java适配器模式的简单应用
- Java经典编程300例之实例065 适配器模式的简单应用
- java native interface(JNI)技术简单应用
- android TimerTask 的简单应用,以及java.lang.IllegalStateException: TimerTask is scheduled already错误的解决方法
- Java中的异常处理机制的简单原理和应用
- java循环和switch混合简单应用
- Java HttpClient 的简单应用
- Java中的异常处理机制的简单原理和应用
- Java中的异常处理机制的简单原理和应用
- 【JAVA零基础入门系列】Day12 Java类的简单应用
- JAVA注解在SSH开发中的简单应用
- 【Java】 Base64原理及简单应用
- 设计模式学习笔记--设计模式在Java I/O中的应用(装饰模式和适配器模式)
- JAVA中JSP应用导出Excel报表的简单实现以及中文乱码彻底解决(HTML)
- android TimerTask 的简单应用,以及java.lang.IllegalStateException: TimerTask is scheduled already错误的解决方法
- Thinking in java 读书笔记(七.1:内部类:匿名内部类和内部类的简单应用)
- java代码Thread简单应用(银行账号相互转账)
- java_web之Servlet简单应用
- 简单的javaBean综合应用项目实践
- jHipster 3.4 创建最流行Java Web应用项目最简单的入门基本教程