疯狂java


您现在的位置: 疯狂软件 >> 新闻资讯 >> 正文

Java适配器模式的简单应用


 

   

  编写程序为普通的汽车增加GPS定位功能,借此演示适配器模式的用法。思路分析:

  这个问题的需求是,在主方法中分别设定普通汽车和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;

  }

  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 {

  public Point getLocation() { //利用汽车的速度来确定汽车的位置

  Point point = new Point();

  point.setLocation(super.getSpeed(), super.getSpeed());

  return point;

  }

  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);

  }

  }

  效果如图: