

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


// 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);
}
}