对于刚从工厂生产出来的商品,有些功能并不能完全满足用户的需要。因此,用户通常会对其进行一定的改装工作。编写程序为普通的汽车增加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