对于刚从工厂生产出来的商品,有些功能并不能完全满足用户的需要。因此,用户通常会对其进行一定的改装工作。编写程序为普通的汽车增加GPS定位功能,借此演示适配器模式的用法。
思路分析:
代码如下:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64 |
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); }} |
效果如图:

原文:http://www.cnblogs.com/cysolo/p/3560315.html