圆类
java
package area20240711;
public class Circle extends Picture{
private double r;
private final double PI = 3.1415926;
public Circle(){}
public Circle(double r) {
this.r = r;
}
public double getR() {
return r;
}
public void setR(double r) {
this.r = r;
}
public double getPI() {
return PI;
}
@Override
public double length() {
return 2 * PI * this.r;
}
@Override
public double area() {
return this.r * this.r * PI;
}
}
图形类
java
package area20240711;
public abstract class Picture {
public abstract double length();
public abstract double area();
}
矩形类
java
package area20240711;
public class Rectangle extends Picture{
private double length;
private double width;
public Rectangle(){}
public Rectangle(double length, double width) {
this.length = length;
this.width = width;
}
public double getLength() {
return length;
}
public void setLength(double length) {
this.length = length;
}
public double getWidth() {
return width;
}
public void setWidth(double width) {
this.width = width;
}
@Override
public double length() {
return 2.0 * (this.length + this.width);
}
@Override
public double area() {
return this.length * this.width * 1.0;
}
}
测试
java
package area20240711;
import java.util.Scanner;
public class AreaTest {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
// 创建一个矩形
Rectangle rtg = creatRectangle();
System.out.println("长为" + rtg.getLength() + "宽为" + rtg.getWidth()
+ "的矩形的周长是" + rtg.length());
System.out.println("长为" + rtg.getLength() + "宽为" + rtg.getWidth()
+ "的矩形的面积是" + rtg.area());
// 创建一个圆形
Circle c = creatCircle();
System.out.println("半径为" + c.getR() + "圆的周长是" + c.length());
System.out.println("半径为" + c.getR() + "圆的面积是" + c.area());
}
public static Rectangle creatRectangle () {
Scanner sc = new Scanner(System.in);
System.out.println("请输入矩形的长");
double length = sc.nextDouble();
System.out.println("请输入矩形的宽");
double width = sc.nextDouble();
return new Rectangle(length, width);
}
public static Circle creatCircle() {
Scanner sc = new Scanner(System.in);
System.out.println("请输入圆形的半径");
double r = sc.nextDouble();
return new Circle(r);
}
}