ADT习题:
虽然前面讲了ADT的相关概念,以及自定义了String和Date来演示ADT(抽象数据类型),但还是需要做点练习题,巩固自己,
如果你真的想判断自己是否掌握了ADT的使用,那就先看题,不要看我写的程序,自己写好了,再来进行对比,这样相信你会
收获两个IDEA。
题1:
编写一个名为Point的类以描述平面上的一个点,它包含点的x坐标和y坐标这两个数据字段。
要求提供对其中任何一个数据字段进行设置与获取的方法,以及求两点之间距离的方法,
还要求提供一个toString()方法,以返回表示点的(x,y)坐标的字符串。
定义一个Point的接口:
package com.java.framework.data_structure.adt;
/**
* Created by Ryan Xu on 2016/4/30.
*/
public interface Point {
public String toString();
//获取和另外一个点之间的距离
public double getDistance(Point point);
}
package com.java.framework.data_structure.adt;
/**
* Created by Ryan Xu on 2016/4/30.
* 表示一个具体的点
*/
public class ConcretePoint implements Point {
private double x, y;
/**
* 构造方法
* @param x
* @param y
*/
public ConcretePoint(float x, float y) {
this.x = x;
this.y = y;
}
@Override
public double getDistance(Point point) {
ConcretePoint mPoint = (ConcretePoint) point;
double result = Math.pow((x - ((ConcretePoint) point).x), 2) + Math.pow((y - ((ConcretePoint) point).y), 2);
return Math.sqrt(result);
}
@Override
public String toString() {
return "(" + x + "," + y + ")";
}
public double getX() {
return x;
}
public double getY() {
return y;
}
public void setX(double x) {
this.x = x;
}
public void setY(double y) {
this.y = y;
}
}
最后通过Client进行测试: