欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

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

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

*10.11(几何:Circle2D类)定义Circle2D类

  • 题目
    • 程序
  • 代码
    • Test11.java
    • Test11_Circle2D.java
    • 运行实例
  • 关于UML

题目


程序

Test11.java:测试程序
Test11_Circle2D.java:构造程序

代码

Test11.java

public class Test11 {public static void main(String[] args) {Test11_Circle2D c1 = new Test11_Circle2D(2, 2, 5.5);System.out.printf("面积:%.2f\n", c1.getArea());System.out.printf("周长:%.2f\n", c1.getPerimeter());System.out.println("====================");System.out.println(c1.contains(3, 3));System.out.println(c1.contains(new Test11_Circle2D(4, 5, 10.5)));System.out.println(c1.overlaps(new Test11_Circle2D(3, 5, 2.3)));} }

Test11_Circle2D.java

public class Test11_Circle2D {double x, y;public double getX() {return x;}public double getY() {return y;}double radius;public double getRadius(){return radius;}public Test11_Circle2D(){x = 0;y = 0;radius = 1;}public Test11_Circle2D(double x, double y, double radius){this.x = x;this.y = y;this.radius = radius;}public double getArea(){return Math.PI * radius * radius;}public double getPerimeter(){return 2 * Math.PI * radius;}public boolean contains(double x, double y){double distance = Math.sqrt((this.x - x) * (this.x - x) + (this.y - y) * (this.y - y));boolean b;if (distance >= radius)b = false;elseb = true;return b;}public boolean contains(Test11_Circle2D circle){// 步1:circle圆心在本圆中// 步2:圆心距离+circle半径 <= 本圆半径boolean judgeStepOne, judgeStepTwo;double distance = Math.sqrt((x - circle.x) * (x - circle.x) + (y - circle.y) * (y - circle.y));judgeStepOne = contains(circle.x, circle.y);judgeStepTwo = (distance + circle.radius <= radius);return judgeStepOne && judgeStepTwo;}public boolean overlaps(Test11_Circle2D circle){// 圆心距离小于两半径和double distance = Math.sqrt((x - circle.x) * (x - circle.x) + (y - circle.y) * (y - circle.y));return distance < radius + circle.radius;} }

运行实例

面积:95.03 周长:34.56 ==================== true false true

关于UML

总结

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

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