【案例目标】
- 学会“图形的面积与周长计算程序设计”的实现思路。
- 独立完成“图形的面积与周长计算程序设计”的源代码编写、编译及运行。
- 理解和掌握面向对象的设计过程。
- 掌握抽象类及抽象方法的使用。
【案例分析】
(1)定义父类Shape作为抽象类,并在类中定义抽象方法求周长和面积。
(2)定义Shape子类圆形(circle),具有半径属性和常量PI,同时必须实现父类中的抽象方法。
(3)定义Shape子类长方形(rectangle),具有长和宽的属性,同时必须实现父类的抽象方法。
(4) 定义图形面积周长计算器(ShapeCalculate),具有计算不同图形面积和周长的方法。
(5)创建测试类TestShape类,在其main()方法中对ShapeCalculate计算面积和周长方法进行测试。
public class TestShape{ public static void main(String[] args) { ShapeCalculate s=new ShapeCalculate(); s.circle(); s.rectangle(); } } abstract class Shape{ abstract void zhouchang(); abstract void mianji(); } class circle extends Shape{ double r; public double getR(){ return r; } public void setR(double r){ this.r=r; } double PI=3.14; void zhouchang() { double zhouchang=2*r*PI; System.out.println("圆的周长为"+zhouchang); } void mianji() { double mianji=PI*r*r; System.out.println("圆的面积为"+mianji); } public circle(double r){ this.r=r; } } class rectangle extends Shape{ int chang; int kuan; public int getChang(){ return chang; } public void setChang(int chang){ this.chang=chang; } public int getKuan(){ return kuan; } public void setKuan(int kuan){ this.kuan=kuan; } void zhouchang() { int zhouchang=(chang+kuan)*2; System.out.println("长方形周长为"+zhouchang); } void mianji() { int mianji=chang*kuan; System.out.println("长方形面积为"+mianji); } public rectangle(int chang,int kuan){ this.chang=chang; this.kuan=kuan; } } class ShapeCalculate{ void circle() { circle c=new circle(4); c.mianji(); c.zhouchang(); } void rectangle(){ rectangle r=new rectangle(4,4); r.mianji(); r.zhouchang(); } }