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表示图形的周长
分析问题中的描述,可以得出如下解决方案
-定义两个类Square和Circle,分别表示正方形和圆形
-正方形和圆形都有周长,我们可以使用c属性来表示,要计算正方形和圆形的面积,我们定义area方法来实现,即,分别在Square类和Circle类中定义c属性和area方法,并根据各自图形的公式计算对应面积。
-案例问题中要求计算各种图形面积,并找出最大值。在此,我们需要找到一种类型。该类型为Square类和Circle类的父类,使用该类型的数组来存储所有图形。因此定义Shape类,该类为Square和Circle类的父类,并将Square和Circle类的共有属性放入Shape类中定义。
-又因为父类(Shape)的引用不能直接调用子类的方法(area方法),因此,将area方法抽取到父类Shape中。在父类Shape中,不知道具体是哪种图形,因此area方法不知如何去实现,在此,将该方法定义为抽象方法,那么Shape类也要定义为抽象类。这样也形成了子类重写父类的area方法。
-最后我们可以定义如下方法来实现求面积最大值。
以上方法中,参数shapes为Shap[]数组类型,该参数可以存储正方形、圆形、或其他图形。
步骤步骤一:定义类Square和Circle
定义两个类,分别表示正方形和圆形。
步骤二:定义c属性和area方法
分别在两个类当中定义c属性和area方法,并根据各自图形的公式计算对应的面积
步骤三:定义父类Shape并抽取属性和方法
定义父类Shape,将子类中共有属性c和area方法抽取到父类中,并重构子类
步骤四:计算各种图形面积最大值
新建类TestShape,在该类中创建方法maxArea方法,该方法实现计算多种图形面积最大值
步骤五:测试
在TestShape类中,测试maxArea方法能否计算出各种图形面积的最大值。
运行测试程序,输出的结果为:
今天的程序就写到这个地方,明天介绍抽象类和接口的实例。
知识无限,能力有限。小编在文章编辑过程中难免出现不尽人意的地方,欢迎大家批评指正,小编也将不断积累完善自己,让我们共同进步。