快捷搜索:  汽车  科技

java用面向对象求圆形面积(面向对象实例讲解)

java用面向对象求圆形面积(面向对象实例讲解)-又因为父类(Shape)的引用不能直接调用子类的方法(area方法),因此,将area方法抽取到父类Shape中。在父类Shape中,不知道具体是哪种图形,因此area方法不知如何去实现,在此,将该方法定义为抽象方法,那么Shape类也要定义为抽象类。这样也形成了子类重写父类的area方法。-案例问题中要求计算各种图形面积,并找出最大值。在此,我们需要找到一种类型。该类型为Square类和Circle类的父类,使用该类型的数组来存储所有图形。因此定义Shape类,该类为Square和Circle类的父类,并将Square和Circle类的共有属性放入Shape类中定义。分析问题中的描述,可以得出如下解决方案-定义两个类Square和Circle,分别表示正方形和圆形-正方形和圆形都有周长,我们可以使用c属性来表示,要计算正方形和圆形的面积,我们定义area方法来实现,即,分别在Squar

问题

-计算多种图形的面积,并比较各种图形面积的最大值

-使用抽象类及其子类的方式实现本案例

-本案例以圆形和正方形为例

注:正方形的面积公式为:0.0625*c*c。圆形的面积公式为:0.0796*c*c,其中c表示图形的周长

java用面向对象求圆形面积(面向对象实例讲解)(1)

方案

分析问题中的描述,可以得出如下解决方案

-定义两个类Square和Circle,分别表示正方形和圆形

-正方形和圆形都有周长,我们可以使用c属性来表示,要计算正方形和圆形的面积,我们定义area方法来实现,即,分别在Square类和Circle类中定义c属性和area方法,并根据各自图形的公式计算对应面积。

-案例问题中要求计算各种图形面积,并找出最大值。在此,我们需要找到一种类型。该类型为Square类和Circle类的父类,使用该类型的数组来存储所有图形。因此定义Shape类,该类为Square和Circle类的父类,并将Square和Circle类的共有属性放入Shape类中定义。

-又因为父类(Shape)的引用不能直接调用子类的方法(area方法),因此,将area方法抽取到父类Shape中。在父类Shape中,不知道具体是哪种图形,因此area方法不知如何去实现,在此,将该方法定义为抽象方法,那么Shape类也要定义为抽象类。这样也形成了子类重写父类的area方法。

-最后我们可以定义如下方法来实现求面积最大值。

java用面向对象求圆形面积(面向对象实例讲解)(2)

以上方法中,参数shapes为Shap[]数组类型,该参数可以存储正方形、圆形、或其他图形。

步骤

步骤一:定义类Square和Circle

定义两个类,分别表示正方形和圆形。

java用面向对象求圆形面积(面向对象实例讲解)(3)

步骤二:定义c属性和area方法

分别在两个类当中定义c属性和area方法,并根据各自图形的公式计算对应的面积

java用面向对象求圆形面积(面向对象实例讲解)(4)

步骤三:定义父类Shape并抽取属性和方法

定义父类Shape,将子类中共有属性c和area方法抽取到父类中,并重构子类

java用面向对象求圆形面积(面向对象实例讲解)(5)

步骤四:计算各种图形面积最大值

新建类TestShape,在该类中创建方法maxArea方法,该方法实现计算多种图形面积最大值

步骤五:测试

在TestShape类中,测试maxArea方法能否计算出各种图形面积的最大值。

java用面向对象求圆形面积(面向对象实例讲解)(6)

运行测试程序,输出的结果为:

java用面向对象求圆形面积(面向对象实例讲解)(7)

今天的程序就写到这个地方,明天介绍抽象类和接口的实例。

知识无限,能力有限。小编在文章编辑过程中难免出现不尽人意的地方,欢迎大家批评指正,小编也将不断积累完善自己,让我们共同进步。

猜您喜欢: