/*
* 编程求解形状面积。要求:声明一个Shape基类,在此基础上派生出Rectangle和Circle类,
* 二者都有GetArea()方法计算对象的面积;使用Rectangle类创建一个派生类Square;
*测试类AreaDemo中采用向上转型语句创建不同形状对象实例,更改形状和相应参数,能够输出其面积。
*
* 我原来用的是 args[0]=="Circle",小伙伴提示这个比的是地址
* 应该换成 args[0].equals("Circle")
* */
abstract class Shape{
float a;
float b;
public void setA(float a){
this.a=a;
}
public void setB(float b){
this.b=b;
}
abstract float getArea();
}
class Rectangle extends Shape{
float getArea(){
return a*b;
}
}
class Circle extends Shape{
float getArea(){
return (float)(a*a*Math.PI); //if not float ,Type mismatch: cannot convert from double to float
}
}
class Square extends Rectangle{
float getArea(){
return a*a;
}
}
public class AreaDemo{
public static void main(String[] args){
if(args[0].equals("Circle")){
Shape s=new Circle();
s.setA(Float.parseFloat(args[1]));
System.out.println((float)s.getArea());
System.out.println("Circle done");
}else if(args[0].equals("Rectangle")){
Shape s=new Rectangle();
s.setA(Float.parseFloat(args[1]));
s.setB(Float.parseFloat(args[2]));
System.out.println(s.getArea());
System.out.println("Rectangle done");
}else if(args[0].equals("Square")){
Shape s=new Square();
s.setA(Float.parseFloat(args[1]));
System.out.println(s.getArea());
System.out.println("Square done");
}
}
}
求解形状面积
最新推荐文章于 2019-10-24 20:36:50 发布