两 个 名 为 x 和 y 的 double 型数据域表明矩形的中心点,这两个数据域都带有 get 和 set 方 法(假设这个矩形的边与 x轴 和 轴 平 行)。 • 带 get 和 set 方法的数据域 width 和 height。
344 第to 幸
• 一个无参构造方法,该方法创建一个(x,y)值为(0,0)且 width 和height 为1的默认矩形。 • — 个构造方法,创建带指定的 x、y、width 和 height 的矩形。 • 方法 getAreacO 返回矩形的面积。 • 方法 getPerimeterO 返回矩形的周长。 • 如果给定的点 Cx,y)在矩形内,那么方法 contains(double x, double y)返回 true, 如图 10-24a 所示。• 如果给定的矩形在这个矩形内,那么方法 contains(MyRectangle2D r)返回 true, 如图 10-24b 所示。• 如果给定的矩形和这个矩形重叠,那么方法 overlaps(MyRectangle2D r)返回 true, 如 图 10-24c 所示。 P
a) 点在矩形内 b> — 个矩形在另一个矩形内 c> — 个矩形和另一个矩形重叠 d) 点被包围在矩形中 图 10*24 画出该类的UML图并实现这个类。编写测试程序,创建一个MyRectangle2D 对象 rl(new MyRectangle2DC2, 2,5.5,4.9)), 显示它的面积和周长,然后显示 rl.contains(3,3)、 rl.contalns(new MyRectangle2D(4,5,10.S ,3.2)) fO rl.overlaps(new MyRectangle2D(3,5, 2.3,5.4))的结果。
————————方法块:
import java.util.*;
/**
*
*/
public class MyRectangle2D {
/**
* Default constructor
*/
public MyRectangle2D() {
this.x = 0;
this.y = 0;
this.height = 1;
this.width = 1;
}
/**
*
*/
private double x;
/**
*
*/
private double y;
/**
*
*/
private double width;
public double getX() {
return x;
}
public void setX(double x) {
this.x = x;
}
public double getY() {
return y;
}
public void setY(double y) {