半片橘子 2023-06-12 20:36 采纳率: 92.9%
浏览 64
已结题

复习考试题库,代码编写

img

img


复习考试题库,代码编写
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111

  • 写回答

3条回答 默认 最新

  • threenewbee 2023-06-12 21:17
    关注
    // PerimeterInterface.java
    public interface PerimeterInterface {
    public abstract double getPerimeter();
    }
    
    // AreaInterface.java
    public interface AreaInterface {
    public abstract double getArea();
    }
    
    // Shape.java
    public abstract class Shape implements PerimeterInterface, AreaInterface {
    public static void getInfo(Shape shape) {
    System.out.println("Perimeter: " + shape.getPerimeter());
    System.out.println("Area: " + shape.getArea());
    }
    }
    
    // Point.java
    public class Point extends Shape {
    private double x;
    private double y;
    
    public Point(double x, double y) {
        this.x = x;
        this.y = y;
    }
    
    @Override
    public double getPerimeter() {
        return 0.0;
    }
    
    @Override
    public double getArea() {
        return 0.0;
    }
    }
    
    // Line.java
    public class Line extends Shape {
    private Point start;
    private Point end;
    
    public Line(Point start, Point end) {
        this.start = start;
        this.end = end;
    }
    
    @Override
    public double getPerimeter() {
        return start.getPerimeter() + end.getPerimeter();
    }
    
    @Override
    public double getArea() {
        return 0.0;
    }
    }
    
    // Circle.java
    public class Circle extends Shape {
    private Point center;
    private double radius;
    
    public Circle(Point center, double radius) {
        this.center = center;
        this.radius = radius;
    }
    
    @Override
    public double getPerimeter() {
        return 2 * Math.PI * radius;
    }
    
    @Override
    public double getArea() {
        return Math.PI * Math.pow(radius, 2);
    }
    }
    
    // RightTriangle.java
    public class RightTriangle extends Shape {
    private Point a;
    private Point b;
    private Point c;
    
    public RightTriangle(Point a, Point b, Point c) {
        this.a = a;
        this.b = b;
        this.c = c;
    }
    
    @Override
    public double getPerimeter() {
        double sideA = Math.sqrt(Math.pow((b.getX() - a.getX()), 2) + Math.pow((b.getY() - a.getY()), 2));
        double sideB = Math.sqrt(Math.pow((c.getX() - b.getX()), 2) + Math.pow((c.getY() - b.getY()), 2));
        double sideC = Math.sqrt(Math.pow((a.getX() - c.getX()), 2) + Math.pow((a.getY() - c.getY()), 2));
        return sideA + sideB + sideC;
    }
    
    @Override
    public double getArea() {
        double sideA = Math.sqrt(Math.pow((b.getX() - a.getX()), 2) + Math.pow((b.getY() - a.getY()), 2));
        double sideB = Math.sqrt(Math.pow((c.getX() - b.getX()), 2) + Math.pow((c.getY() - b.getY()), 2));
        return (sideA * sideB) / 2;
    }
    }
    
    // Main.java
    public class Main {
    public static void main(String[] args) {
    Point p = new Point(0, 0);
    Line l = new Line(new Point(0, 0), new Point(3, 4));
    Circle c = new Circle(new Point(0, 0), 5);
    RightTriangle r = new RightTriangle(new Point(0, 0), new Point(3, 0), new Point(0, 4));
    
        Shape.getInfo(p);
        Shape.getInfo(l);
        Shape.getInfo(c);
        Shape.getInfo(r);
    }
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 6月26日
  • 已采纳回答 6月18日
  • 创建了问题 6月12日