欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

Java黑皮书课后题第10章:*10.13(几何:MyRectangle2D类)定义MyRectangle2D类

发布时间:2024/8/1 42 豆豆
生活随笔 收集整理的这篇文章主要介绍了 Java黑皮书课后题第10章:*10.13(几何:MyRectangle2D类)定义MyRectangle2D类 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

Java黑皮书课后题第10章:10.3

  • 题目
    • 程序
  • 代码
    • Test13.java
    • Test13_MyRectangle2D.java
    • 运行
  • UML

题目

程序

Test13.java:测试程序
Test13_MyRectangle2D.java:构造程序

代码

Test13.java

public class Test13 {public static void main(String[] args) {Test13_MyRectangle2D r1 = new Test13_MyRectangle2D(2, 2, 5.5, 4.9);System.out.printf("%.2f\n", r1.getArea());System.out.printf("%.2f\n", r1.getPerimeter());System.out.println("=================");System.out.println(r1.contains(3, 3));System.out.println(r1.contains(new Test13_MyRectangle2D(4, 5, 10.5, 3.2)));System.out.println(r1.overlaps(new Test13_MyRectangle2D(3, 5, 2.3, 5.4)));} }

Test13_MyRectangle2D.java

public class Test13_MyRectangle2D {private double x, y;public double getX() {return x;}public void setX(double x) {this.x = x;}public double getY() {return y;}public void setY(double y) {this.y = y;}private double width, height;public double getWidth() {return width;}public void setWidth(double width) {this.width = width;}public double getHeight() {return height;}public void setHeight(double height) {this.height = height;}public Test13_MyRectangle2D(){x = 0;y = 0;width = 1;height = 1;}public Test13_MyRectangle2D(double x, double y, double width, double height){this.x = x;this.y = y;this.width = width;this.height = height;}public double getArea(){return width * height;}public double getPerimeter(){return 2 * (width + height);}public boolean contains(double x, double y){boolean bool1 = false, bool2 = false;if (x > this.x - width / 2 && x < this.x + width / 2)bool1 = true;if (y > this.y - height / 2 && y < this.y + height / 2)bool2 = true;return bool1 && bool2;}public boolean contains(Test13_MyRectangle2D r){return ((Math.abs(x - r.x)) < width / 2) && (Math.abs(y - r.y) < height / 2);}public boolean overlaps(Test13_MyRectangle2D r){return ((Math.abs(x - r.x)) < (width / 2 + r.width / 2)) && (Math.abs(y - r.y) < (height / 2 + r.height / 2));} }

运行

26.95 20.80 ================= true false true

UML

总结

以上是生活随笔为你收集整理的Java黑皮书课后题第10章:*10.13(几何:MyRectangle2D类)定义MyRectangle2D类的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。