问题

根据周长计算不同形状图形的面积,详细要求如下:

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

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

3.本案例以圆形和正方形为例。

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

方案

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

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

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

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

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

Java入门第65课——根据周长计算不同形状图形的面积相关推荐

  1. Java入门第37课——猜字母游戏之设计数据结构

    问题         有猜字母游戏,其游戏规则为:程序随机产生5个按照一定顺序排列的字符作为猜测的结果,由玩家来猜测此字符串.玩家可以猜测多次,每猜测一次,则由系统提示结果.如果猜测的完全正确,则游戏 ...

  2. Java入门第116课——向List中插入和删除元素

    问题 向List集合的指定索引位置插入元素以及移除指定索引位置的元素,详细要求如下: 1)创建List接口的引用list,使该引用指向ArrayList的实例,将字符串"java" ...

  3. Java入门第112课——使用Iterator的hasNext方法、next方法遍历集合

    问题 使用Iterator的hasNext方法.next方法遍历集合,详细要求如下: 1)使用HashSet构建集合c,将字符串"java"."cpp".&qu ...

  4. Java入门第107课——使用add方法向集合中添加元素

    问题 使用add方法向集合中添加元素,详细要求如下: 1)使用ArrayList构造集合对象c,并输出该对象. 2)将字符串"a"."b"."c&qu ...

  5. Java入门第111课——集合addAll、containsAll的用法

    问题 测试Collection接口中addAll方法.containsAll方法的用法,详细要求如下: 1)使用ArrayList构建集合c1,将字符串"java"."c ...

  6. Java入门第97课——使用setTime和getTime方法操作时间毫秒

    码字不易,请大家关注公众号,转发,点赞,只需动动手指,不要钱,谢谢了老铁! 问题 使用setTime和getTime方法操作毫秒表示的日期-时间,详细要求如下: 1)获取1970年1月1日零时距当前时 ...

  7. Java入门第38课——猜字母游戏之设计程序结构

    问题 本案例需要实现猜字母游戏程序中的程序结构 方案 分析猜字母游戏可以看出,程序首先需要随机产生5个不同的字母作为需要猜测的结果,因此,可以先定义一个方法,以实现此功能:其次,每当玩家猜测一次后,程 ...

  8. Java入门第118课——List转换为数组

    问题 将集合List转换为数组,详细要求如下所示: 1)创建List接口的引用list,使该引用指向ArrayList的实例:将字符串"a"."b"." ...

  9. Java入门第82课——StringBuilder的append方法

    问题 StringBuilder类提供将各种数据类型变量的字符串形式追加到当前序列中的append方法,在Java API中提供的append重载方法如图-15所示: 本案例要求将字符串"j ...

  10. Java入门第88课——使用replaceAll实现字符串替换

    问题 使用replaceAll实现字符串替换,具体要求为将字符串"abc123bcd45ef6g7890"中的数字替换为汉字"数字",如果是连续的数字,那么替换 ...

最新文章

  1. 【原】YUI压缩与CSS media queries下的bug
  2. ArcGIS地理信息系统空间分析实验教程第一章 导论
  3. 搭建scala 开发spark程序环境及实例演示
  4. docker用gpu的参数_ZStack实践汇 | ZStack+Docker支撑GPU业务实践
  5. java pnpoly算法_C语言实现的PNPoly算法代码例子
  6. Hibernate SQL方言
  7. func服务器报警显示C,serve_func.c
  8. 带有分页的列表的跳转后,返回时怎么实现保留分页的页数等信息
  9. OpenCV入门知识[转载]
  10. Android sdk 环境变量配置无效
  11. 大四学生的前端实习记录
  12. 电脑chm文件打不开解决方法
  13. Ubutntu18.04 root用户下谷歌浏览器打不开
  14. 【Unity3d Shader】景深效果
  15. 第十一周学习周报(20180514-20180520)
  16. 5G车路协同自动驾驶应用研究
  17. 有效预警6要素:亿级调用量的阿里云弹性计算SRE实践
  18. python文件处理相关
  19. 【观察】赋能制造业数字化转型,华为有何“独门秘籍”?
  20. jQuery动画-----折叠动画(slideDown、slideUp、slideToggle)

热门文章

  1. java pdf合并_如何实用Java实现合并、拆分PDF文档
  2. qq邮箱 html 屏蔽,QQ邮箱邮件被拦截该怎么办?邮件被拦截的三种解决办法
  3. ubuntu网页邮箱服务器设置,ubuntu配置邮件服务器
  4. 计算机网络10--路由冗余备份,缺省(静态)路由配置
  5. 随机存取存储器(RAM)的最大特点是什么?
  6. 私域流量和公域流量的区别
  7. Tungsten Fabric入门宝典丨TF组件的七种“武器”
  8. 递归的本质(栈:后进先出)
  9. LeetCode知识点总结 - 1179
  10. PTGUI 全景图批量拼接