随机创建圆形、三角形或者矩形类的对象, 存放在数组中,并计算出每个形状的面积和周长

  • 题目要求
  • 解题思路
  • 代码
    • 形状类代码
    • 圆形类代码
    • 三角形类代码
    • 矩形类代码
    • 方法类代码
  • 运行结果

题目要求

随机创建圆形、三角形或者矩形类的对象, 存放在数组中,并计算出每个形状的面积和周长

解题思路

  1. 创建一个形状类;
  2. 创建一个继承形状类的圆形类;
  3. 创建一个继承形状类的三角形类;
  4. 创建一个继承形状类的矩形类;
  5. 创建一个方法类。

代码

形状类代码

package shape;
public abstract class Shape {public abstract double area();public abstract double girth();
}

以下的代码都是在Shape类型的数组中,调用area()方法求各形状对象的面积, 调用girth()方法求各形状对象的周长。

圆形类代码

package kj10;public class Circle extends Shape {double radius;public Circle() {radius=1;    }public Circle(double r) {this.radius = r;}public double area() {return Math.PI*radius*radius;}public double girth() {return 2*Math.PI*radius;}}

三角形类代码

package kj10;public class Triangle extends Shape {double a,b,c;public Triangle() {a=1;b=1;c=1;}public Triangle(double a, double b, double c) {super();this.a = a;this.b = b;this.c = c;}public double area() {double p=(a+b+c)/2;return Math.sqrt(p*(p-a)*(p-b)*(p-c));}public double girth() {return a+b+c;}}

三角形代码中所用到的面积公式为海伦公式;
海伦公式:三角形的面积等于s(s-a)(s-b)(s-c)的开方,其中s=(a+b+c)/2。

矩形类代码

package kj10;public class Rectangle extends Shape {double length,width;public Rectangle() {length=1;width=1;}public Rectangle(double l, double w) {this.length = l;this.width = w;}public double area() {return length*width;}public double girth() {return 2*(length+width);}}

方法类代码

package kj10;import java.util.Random;public class Test {public Shape createShape() {Shape sp=null;Random rd;rd=new Random();int j;j=rd.nextInt(3);if(j==0) {sp=new Circle(rd.nextDouble());}else if(j==1) {sp=new Rectangle(rd.nextDouble(),rd.nextDouble());}else if(j==2) {double a,b,c;a=rd.nextDouble();c=b=a;sp=new Triangle(a,b,c);}return sp;}public static void main(String[] args) {Test ot=new Test();Shape s[]=new Shape[10];for(int i=0;i<s.length;i++) {s[i]=ot.createShape();}for(int i=0;i<s.length;i++) {System.out.print("第"+(i+1)+"个形状是:");if(s[i] instanceof Circle ) System.out.print("圆形");else if (s[i] instanceof Rectangle) System.out.print("矩形");else if(s[i] instanceof Triangle) System.out.print("三角形");System.out.println("\t面积为:"+String.format("%.2f", s[i].area())+"\t周长为:"+String.format("%.2f", s[i].girth()));}}}

运行结果



两个截然不同的运行结果,都是由系统随机产生。

本篇文章到这就结束了,觉得写得还可以的话点个一键三连吧。
如果写得不清楚的欢迎评论区交流;有可以优化的地方欢迎大佬指教指教。

随机创建圆形、三角形或者矩形类的对象, 存放在数组中,并计算出每个形状的面积和周长相关推荐

  1. 定义一个基本的银行账户类。在基本账户类的基础上派生出1年期定期账户、2年期定期账户、3年期定期账户和5年期定期账户。定义一个n个基类指针组成的数组,随机生成n个各类派生类的对象。让每个指针指向一个派生

    定义一个基本的银行账户类.在基本账户类的基础上派生出1年期定期账户.2年期定期账户.3年期定期账户和5年期定期账户.定义一个n个基类指针组成的数组,随机生成n个各类派生类的对象.让每个指针指向一个派生 ...

  2. Java黑皮书课后题第9章:**9.13(Location类)设计一个名为Location的类,定位二维数组中的最大值及其位置。

    Java黑皮书课后题第9章:**9.13(Location类)设计一个名为Location的类,定位二维数组中的最大值及其位置 题目 破题 代码 Test13 Test13_Location 运行结果 ...

  3. Java中创建线程需要使用的类_如何通过使用Java中的匿名类创建线程?

    甲线程是可以同时与该程序的其他部分被执行的功能.所有Java程序都有至少一个称为主线程的线程,该线程由Java虚拟机(JVM)在程序启动时由主线程调用main()方法创建. 在Java中,我们可以通过 ...

  4. java对象数组练习,定义数组存储三台汽车对象。汽车的属性有:品牌,价格,颜色。创建三个汽车对象,数据通过键盘输入而来,并把数据存入数组中,打印出每台汽车的信息。

    首先创建一个汽车类: class Car{     private String name;     private int price;     private String color;      ...

  5. html5 canvas绘制圆形、方形矩形、线段、图片等各种图形(面向对象版本)

    概念: 面向对象的方法主要是把事物给对象化,包括其属性和行为.面向对象编程更贴近实际生活的思想.总体来说面向对象的底层还是面向过程,面向过程抽象成类,然后封装,方便使用就是面向对象(万物皆对象). 绘 ...

  6. 【Java 19】反射 - 反射机制概述、获取Class实例、类的加载与ClassLoader的理解、创建运行时类的对象、获取运行时类的完整结构、调用运行时类的指定结构、动态代理

    反射机制概述.获取Class实例.类的加载与ClassLoader的理解.创建运行时类的对象.获取运行时类的完整结构.调用运行时类的指定结构.动态代理 反射 1 Java反射机制概述 1.1 Java ...

  7. 编程题:类---矩形类

    Description /* 类---矩形类Rectangle 设计一个面向对象的程序,计算矩形的周长和面积并输出. 矩形类中有两个数据成员,width成员表示矩形的宽,length成员表示矩形的长: ...

  8. 编译矩形的面积和周长

    /***编译矩形的面积和周长**///创建矩形周长和面积计算的类 class rectCulate {double length=5,breadth=3; //声明矩形的长度和宽度double are ...

  9. java实验类与对象_【实验课件】上机实践2  类与对象

    实验一 三角形.梯形和圆形的类封装 实验目的: 使用类来封装对象的属性和功能 实验要求:编写一个Java应用程序,该程序中有3个类:Trangle .Lader和Circle,分别用来刻画" ...

最新文章

  1. 微信小程序插件新增能力
  2. 升级pip后出错:无法导入名称“ main”
  3. 查看pod网络范围_可用网络的ip地址范围
  4. Python 中的基础语句
  5. 弹框位置设置html,JQuery弹出框定位实现方法
  6. JavaScriptCore API 和V8 API
  7. 文件权限二(特殊权限、隐藏属性、文件访问控制列表、切换用户方式)
  8. 行、重复-SAP HANA 集合操作 UNION/Union all/INTERSECT/EXCEPT (SAP HANA Set Operations)-by小雨...
  9. 抢鲜体验:openGauss 安装编译过程要点及问题解决
  10. python具有可扩展的特性_Python的特点
  11. mysql sql汇总查询将两个结果集合并一行展示
  12. Kubernetes学习笔记及重点知识解析
  13. 计算机如何安装无线网络适配器,小编教你电脑无线网卡驱动怎么安装
  14. html中的项目符号和编号,CSS重新定义项目符号和编号
  15. c语言生成exe文件,打开exe文件闪退怎么办
  16. python编程技巧
  17. Day32 Web自动化进阶
  18. c语言debug执行错误,C语言调试出错 0xC0000005: Access Violation.
  19. 【移动安全高级篇】————5、Andorid APK反逆向解决方案---梆梆加固原理探寻
  20. 关于消息队列ActiveMQ、RocketMQ、RabbitMQ、Kafka原理机制以及优劣势的分析

热门文章

  1. QTableWidget实现复制粘贴
  2. 白鹭引擎egret打包成微信小游戏
  3. layui生产管理系统_分享两款Java Spring框架的开源MES制造执行系统
  4. centos关闭自动锁屏
  5. 如何解决因涉及不良信息导致QQ互联审核不通过?
  6. 微型计算机原理跟什么有关,微机原理 课后题 标准答案
  7. 什么叫做走心的文案?怎么写走心的文案?
  8. 博科交换机常用操作命令
  9. visual studio进入时许可证已过期解决方案
  10. Android——自建CA证书,实现https请求