Java案例分析

【案例4-7】图形的面积与周长计算程序

2024-10-25 16 0

简介 1. 案例描述 长方形和圆形都属于几何图形,都有周长和面积,并且它们都有自己的周长和面积计算公式。使用抽象类的知识设计一个程序,可以计算不同图形的面积和周长。

【案例4-7】图形的面积与周长计算程序

【案例介绍】

1.       案例描述

长方形和圆形都属于几何图形,都有周长和面积,并且它们都有自己的周长和面积计算公式。使用抽象类的知识设计一个程序,可以计算不同图形的面积和周长。

2.       运行结果

                                               upfile

【案例目标】

l  学会“图形的面积与周长计算程序设计”的实现思路。

l  独立完成“图形的面积与周长计算程序设计”的源代码编写、编译及运行。

l  理解和掌握面向对象的设计过程。

l  掌握抽象类及抽象方法的使用。

【案例分析】

1)定义父类Shape作为抽象类,并在类中定义抽象方法求周长和面积。

2)定义Shape子类圆形(circle),具有半径属性和常量PI,同时必须实现父类中的抽象方法。

3)定义Shape子类长方形(rectangle),具有长和宽的属性,同时必须实现父类的抽象方法。

4)创建图形面积周长计算器(ShapeCalculate),具有计算不同图形面积和周长的方法。

5)创建测试类TestShape类,在其main()方法中对ShapeCalculate计算面积和周长方法进行测试。

【案例实现】

Shape.java

 1   public abstract class Shape {

 2       // 抽象方法: 获取面积

 3       public abstract double getArea();

 4       // 抽象方法:获取周长

 5       public abstract double getPerimeter();

 6   }

上述代码中,在Shape类中定义了面积和周长的抽象方法。

Cirle.java

 1   public class Circle implementsShape {

 2       private double radius = 0;    // 圆的半径

 3       private final static double PI = 3.14;    // 常量,圆周率

 4           // 有参构造,初始化圆半径

 5       public Circle(double radius) {  

 6           this.radius = radius;

 7       }

 8       // 求圆面积

 9       public double getArea() {

 10               return PI*radius*radius;

 11           }

 12           // 求圆周长

 13           public double getPerimeter() {

 14               return 2*radius*PI;

 15           }

 16       }

上述代码中,定义了圆形Circle类并继承了Shape类,再Circle类中重写了Shape中的getArea()getPerimeter()方法,分别计算圆的面积和周长。

Rectangle.java

 1   public class Rectangle implements Shape {

 2       private double length = 0;    // 长方形的长

 3       private double width = 0;     // 长方形的宽

 4       // 有参构造,初始化长方形的长和宽

 5       public Rectangle(double length, double width) {

 6           super();

 7           this.length = length;

 8           this.width = width;

 9       }

 10           public double getArea() {

 11               return this.length*this.width;

 12           }

 13           public double getPerimeter() {

 14               return 2*(this.length+this.width);

 15           }

 16       }

上述代码中,定义了长方形Rectangle类并继承了Shape类,再Circle类中重写了Shape中的getArea()getPerimeter()方法,分别计算长方形的面积和周长。

ShapeCaculate.java

 1   public class ShapeCaculate {

 2       // 可以计算任意shape子类的面积

 3       public void calArea (Shape shape) {

 4           System.out.println(shape.getArea());

 5       }

 6       // 可以计算任意shape子类的周长

 7       public void calPerimeter(Shape shape) {

 8           System.out.println(shape.getPerimeter());

 9       }

 10       }

创建了图形面积周长计算器ShapeCalculate类,calArea ()方法用来计算不同图形面积,calPerimeter()方法用来计算不同图形的周长。

TestShape.java

 1   public class TestShape {

 2       public static void main(String[] args) {

 3           // 创建图形计算器

 4           ShapeCaculate sc = new ShapeCaculate();

 5           // 创建长方形和圆形对象

 6           Shape rectangle = new Rectangle(3, 4);         // <-------多态

 7           Circle circle = new Circle(3);

 8           // 求长方形和圆形的面积

 9           System.out.println("长方形的面积:");

 10               sc.calArea(rectangle);

 11               System.out.println("圆形的面积:");

 12               sc.calArea(circle);

 13               // 求长方形和圆形的周长

 14               System.out.println("长方形的周长:");

 15               sc.calPerimeter(rectangle);

 16               System.out.println("圆形的周长:");

 17               sc.calPerimeter(circle);

 18           }

 19       }

在上述代码中,分别创建了一个圆形circle对象和一个长方形rectangle对象,然后分别计算了圆形和长方形的面积和周长。


点赞 0

文章评论

欢迎您:

阿文博客

人生的价值,并不是用时间,而是用深度量去衡量的。——列夫·托尔斯泰

69 文章 1879 浏览 0 评论