[java]代码库
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
double length = scan.nextDouble();
Shape s = new Square(length);
System.out.printf("%.2f ", s.getPerimeter());
System.out.printf("%.2f\n", s.getArea());
length = scan.nextDouble();
double wide = scan.nextDouble();
Shape r = new Rectangle(length, wide);
System.out.printf("%.2f ", r.getPerimeter());
System.out.printf("%.2f\n", r.getArea());
double radius = scan.nextDouble();
Shape c = new Circle(radius);
System.out.printf("%.2f ", c.getPerimeter());
System.out.printf("%.2f\n", c.getArea());
scan.close();
}
}
abstract class Shape {
private double length;
private double wide;
public Shape(double len) {
length = len;
}
public Shape(double len, double wi) {
length = len;
wide = wi;
}
public double getLength() {
return length;
}
public double getWide() {
return wide;
}
public abstract double getPerimeter();
public abstract double getArea();
}
class Square extends Shape {
public Square(double len) {
super(len, len);
}
public Square(double len, double wi) {
super(len, wi);
}
public double getLength() {
return super.getLength();
}
public double getWide() {
return super.getWide();
}
public double getPerimeter() {
return 2*(super.getLength()+super.getWide());
}
public double getArea() {
return super.getLength()*super.getWide();
}
}
class Rectangle extends Square{
public Rectangle(double len, double wi) {
super(len, wi);
}
public double getPerimeter() {
return 2*(super.getLength()+super.getWide());
}
public double getArea() {
return super.getLength()*super.getWide();
}
}
class Circle extends Shape{
public Circle(double len) {
super(len);
}
public double getPerimeter() {
return 2*3.14159*super.getLength();
}
public double getArea() {
return 3.14159*super.getLength()*super.getLength();
}
}