Java入门第65课——根据周长计算不同形状图形的面积
问题
根据周长计算不同形状图形的面积,详细要求如下:
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课——根据周长计算不同形状图形的面积相关推荐
- Java入门第37课——猜字母游戏之设计数据结构
问题 有猜字母游戏,其游戏规则为:程序随机产生5个按照一定顺序排列的字符作为猜测的结果,由玩家来猜测此字符串.玩家可以猜测多次,每猜测一次,则由系统提示结果.如果猜测的完全正确,则游戏 ...
- Java入门第116课——向List中插入和删除元素
问题 向List集合的指定索引位置插入元素以及移除指定索引位置的元素,详细要求如下: 1)创建List接口的引用list,使该引用指向ArrayList的实例,将字符串"java" ...
- Java入门第112课——使用Iterator的hasNext方法、next方法遍历集合
问题 使用Iterator的hasNext方法.next方法遍历集合,详细要求如下: 1)使用HashSet构建集合c,将字符串"java"."cpp".&qu ...
- Java入门第107课——使用add方法向集合中添加元素
问题 使用add方法向集合中添加元素,详细要求如下: 1)使用ArrayList构造集合对象c,并输出该对象. 2)将字符串"a"."b"."c&qu ...
- Java入门第111课——集合addAll、containsAll的用法
问题 测试Collection接口中addAll方法.containsAll方法的用法,详细要求如下: 1)使用ArrayList构建集合c1,将字符串"java"."c ...
- Java入门第97课——使用setTime和getTime方法操作时间毫秒
码字不易,请大家关注公众号,转发,点赞,只需动动手指,不要钱,谢谢了老铁! 问题 使用setTime和getTime方法操作毫秒表示的日期-时间,详细要求如下: 1)获取1970年1月1日零时距当前时 ...
- Java入门第38课——猜字母游戏之设计程序结构
问题 本案例需要实现猜字母游戏程序中的程序结构 方案 分析猜字母游戏可以看出,程序首先需要随机产生5个不同的字母作为需要猜测的结果,因此,可以先定义一个方法,以实现此功能:其次,每当玩家猜测一次后,程 ...
- Java入门第118课——List转换为数组
问题 将集合List转换为数组,详细要求如下所示: 1)创建List接口的引用list,使该引用指向ArrayList的实例:将字符串"a"."b"." ...
- Java入门第82课——StringBuilder的append方法
问题 StringBuilder类提供将各种数据类型变量的字符串形式追加到当前序列中的append方法,在Java API中提供的append重载方法如图-15所示: 本案例要求将字符串"j ...
- Java入门第88课——使用replaceAll实现字符串替换
问题 使用replaceAll实现字符串替换,具体要求为将字符串"abc123bcd45ef6g7890"中的数字替换为汉字"数字",如果是连续的数字,那么替换 ...
最新文章
- 【原】YUI压缩与CSS media queries下的bug
- ArcGIS地理信息系统空间分析实验教程第一章 导论
- 搭建scala 开发spark程序环境及实例演示
- docker用gpu的参数_ZStack实践汇 | ZStack+Docker支撑GPU业务实践
- java pnpoly算法_C语言实现的PNPoly算法代码例子
- Hibernate SQL方言
- func服务器报警显示C,serve_func.c
- 带有分页的列表的跳转后,返回时怎么实现保留分页的页数等信息
- OpenCV入门知识[转载]
- Android sdk 环境变量配置无效
- 大四学生的前端实习记录
- 电脑chm文件打不开解决方法
- Ubutntu18.04 root用户下谷歌浏览器打不开
- 【Unity3d Shader】景深效果
- 第十一周学习周报(20180514-20180520)
- 5G车路协同自动驾驶应用研究
- 有效预警6要素:亿级调用量的阿里云弹性计算SRE实践
- python文件处理相关
- 【观察】赋能制造业数字化转型,华为有何“独门秘籍”?
- jQuery动画-----折叠动画(slideDown、slideUp、slideToggle)
热门文章
- java pdf合并_如何实用Java实现合并、拆分PDF文档
- qq邮箱 html 屏蔽,QQ邮箱邮件被拦截该怎么办?邮件被拦截的三种解决办法
- ubuntu网页邮箱服务器设置,ubuntu配置邮件服务器
- 计算机网络10--路由冗余备份,缺省(静态)路由配置
- 随机存取存储器(RAM)的最大特点是什么?
- 私域流量和公域流量的区别
- Tungsten Fabric入门宝典丨TF组件的七种“武器”
- 递归的本质(栈:后进先出)
- LeetCode知识点总结 - 1179
- PTGUI 全景图批量拼接