public class Test {
public static void main(String[] args) {
switch(args.length){
case 1:
System.out.println( (new Square(Double.parseDouble(args[0]))).area());
break;
case 2:
System.out.println(
(new Rectangle(
Double.parseDouble(args[0]),
Double.parseDouble(args[1])
)).area());
break;
case 3:
System.out.println(
(new Triangle(
Double.parseDouble(args[0]),
Double.parseDouble(args[1]),
Double.parseDouble(args[2])
)).area());
break;
default:
System.out.println("参数数量错误:"+args.length);
}
}
static abstract class Shape{
public abstract String area();
}
static class Square extends Shape{
private double l;
public Square(double l) {
this.l=l;
}
@Override
public String area() {
return String.format("正方形: 边长%.3f*边长%.3f=面积%.3f",l,l,l*l); }
}
static class Rectangle extends Shape{
private double w,h;
public Rectangle(double w, double h) {
this.w=w;
this.h=h;
}
@Override
public String area() {
return String.format("长方形: 长%.3f*宽%.3f=面积%.3f",w,h,w*h);
}
}
static class Triangle extends Shape{
private double a,b,c;
public Triangle(double a,double b, double c) {
this.a=a;
this.b=b;
this.c=c;
}
@Override
public String area() {
double p=(a+b+c)/2;
double area= Math.sqrt(p*(p-a)*(p-b)*(p-c));
return String.format("三角形: 边长%.3f, 边长%.3f, 边长%.3f => 面积%.3f",a,b,c,area);
}
}
}
=========================
三角形: 边长12.000, 边长4.200, 边长9.560 => 面积18.073
长方形: 长12.000*宽4.200=面积50.400
正方形: 边长12.000*边长12.000=面积144.000
==================
要自己做题,不然不会的还是自己
那个高手来回答一下,咱也学习学习