代码分两部分来现实:

  1. 先求出各个图形的面积和周长;
  2. 在比较各个图形的大小;

第一点解答如下:

(创建一个图形类Graph;派生类:圆形类Circle、正方形类Square、长方形类Rectangle;测试类TestGraph)

代码如下:

//创建图形类Graph
public abstract class Graph implements Comparable {
/** 定义area、girth抽象方法求面积和周长;子类要抽象这两个方法,(当子类也是抽象类时可不抽象父类的抽象方法)*/public abstract double area();public abstract double girth();public int comparaTo(Graph graph){if(this.area()>graph.area()){return 1 ;}else if(this.area()<graph.area()){return -1 ;}else{return 0 ;}}}
//创建圆形类Cricle
public class Cricle extends Graph {private double radius;   //声明圆半径private String green;     //声明圆颜色private String HavePadding;     //声明圆填充public Cricle(double radius) {this.radius = radius;}public Cricle(double radius,String green,String HavePadding) {this.radius = radius;this.green = green;this.HavePadding = HavePadding;}public double getRadius() {return radius;}public void setRadius(double radius) {this.radius = radius;}//重写父类Graph抽象类中的area()方法public double area() {return Math.PI * radius * radius;}//重写父类Graph抽象类中的girth()方法public double girth() {return 2 * Math.PI * radius;}public String toString() {return " 颜色 = " + green + ", 是否填充 = " + HavePadding + "";}public int comparable(Graph graph) {// TODO Auto-generated method stubreturn 0;}}
//创建正方形类Square
public  class Square extends Graph {private double side;   //声明正方形边长private String yellow;     //声明正方形颜色private String NotPadding;     //声明正方形填充public Square(double side) {this.side = side;}public Square(double side,String yellow,String NotPadding) {this.side = side;this.yellow = yellow;this.NotPadding = NotPadding;}public double getSide() {return side;}public void setSide(double side) {this.side = side;}//重写父类Graph抽象类中的area()方法public double area() {return side * side;}//重写父类Graph抽象类中的girth()方法public double girth() {return 4 * side;}@Overridepublic String toString() {return " 颜色 = " + yellow + ", 是否填充 = " + NotPadding + "";}public int comparable(Graph graph) {// TODO Auto-generated method stubreturn 0;}
}
//创建长方形类Rectangle
public class Rectangle extends Graph {private double length;   //声明长方形长和宽private double width;private String red;     //声明长方形颜色private String HavePadding;     //声明长方形填充public Rectangle(double length, double width) {this.length=length;this.width=width;}public Rectangle(double length,double width,String red,String HavePadding) {this.length = length;this.width = width;this.red = red;this.HavePadding = HavePadding;}public double getLength() {return length;}public void setLength(double length) {this.length = length;}public double getWidth() {return width;}public void setWidth(double width) {this.width = width;}//重写父类Graph抽象类中的area()方法public double area() {return length * width;}//重写父类Graph抽象类中的girth()方法public double girth() {return (length + width)*2;}public String toString() {return " 颜色 = " + red + ", 是否填充 = " + HavePadding + "";}public int comparable(Graph graph) {// TODO Auto-generated method stubreturn 0;}}
//创建测试类
public class TestGraph{public static void main(String[] args) {//分别实例化square、cricle、rectangleGraph square = new Square(4.0,"黄色","无填充");Graph cricle = new Cricle(3.0,"绿色","有填充");Graph rectangle = new Rectangle(10.0,5.0,"红色","有填充");//进行打印输出各个图形的面积与周长System.out.println("正方形信息为 :" + square.toString() + "\n"+"正方形的面积为 :"+ square.area()+" 正方形的周长为 :" + square.girth() +"\n");System.out.println("圆形信息为 :" + cricle.toString() + "\n"+"圆形的面积为 :"+ cricle.area()+" 圆形的周长为 :" + cricle.girth() +"\n");System.out.println("长方形信息为 :" + rectangle.toString() + "\n"+"长方形的面积为 :"+ rectangle.area()+" 长方形的周长为 :" + rectangle.girth() +"\n");}}
  1. 在比较各个图形的大小;

第二点解答如下:

  1. (创建一个接口Comparable;接口中创建一个comparaTo()方法找出数组中面积最大的图形。)
  2. (图形类Graph实现接口并重新comparaTo()方法)
  3. (创建一个TestGraphs测试类)

代码如下:

public interface Comparable {public int comparable(Graph graph);}
public class TsteGraphs {public static void main(String[] args) {//实例化图像对象数组Graph[] gra = new Graph[10];for(int i=0;i<3;i++){Cricle c = new Cricle(2.0+i);gra[i] = c;}for(int i=3;i<7;i++){Square s = new Square(3.0+i);gra[i] = s;}for(int i=7;i<10;i++){Rectangle r = new Rectangle(3.0+i,4.0+i);gra[i] = r;}Graph max = gra[0];  //认为第一个面积是最大的,再用for比较,把最大的赋值给maxfor(int i=0;i<gra.length;i++){if(gra[i].area()>max.area()){max = gra[i];}}System.out.println("最大图形为:"+max.area());}}

Java计算圆、长方形、正方形的面积及周长,并比较打印各个图形的大小相关推荐

  1. 计算圆和正方形的面积和周长

    1.新建一个类Shape(图形类), 实现功能: -计算面积(area)的功能:输出字符串 area- -计算周长(perimeter)的功能:输出字符串perimeter 2.新建类 Circle( ...

  2. 正方形的面积用java写,java 编程 使用接口方式计算圆和正方形的面积(S)和周长(L)...

    interface Cal{ //使用接口方式计算圆和正方形的面积(S)和周长(L);cal:计算器; //get 获得 public static final double PI = 3.14; / ...

  3. Java计算圆的体积,面积

    实验目的与要求: 编写类,接口Shape,类Circle,描述形状,圆,矩形和面积 实验内容与操作: package yyds;public class Pillar{private int h;pr ...

  4. java定义一个方法计算三角形,长方形,圆形面积和周长

    java定义一个方法计算三角形,长方形,圆形面积和周长 /*** 定义一个方法,返回一个圆的周长 半径* 定义一个方法,返回一个圆的面积 半径* 定义一个方法,返回一个矩形的周长 长 宽* 定义一个方 ...

  5. 如何用java计算圆的周长和面积?

    要用Java计算圆的周长和面积,需要使用圆的半径和一些数学公式.以下是计算圆的周长和面积的Java代码示例: import java.util.Scanner;public class Circle ...

  6. C++继承——以应用抽象类,求圆、圆内接正方形、圆外切正方形的面积和周长为例

    c++中基类的继承及其使用,以圆的内接正方形和外切正方形为例 1:C++中继承的方式 C++中的继承主要分为三类:public公有继承.protected保护继承以及private私有继承,其使用范围 ...

  7. [JAVA]计算底面为正方形的长方体体积以及JAVA的math方法 2021-09-06

    [JAVA]计算底面为正方形的长方体体积 要求 函数需求 Java中自带的数学方法计算平方 1--10的随机数 计算出的结果向上取整 代码实现 JAVA的math方法 要求 1.底面正方形输入数据为浮 ...

  8. 计算矩形和圆形的面积和周长(java)

    package exe02; import java.util.Scanner; /*name:Excise1 功能:计算矩形和圆形的面积和周长*/ public class second1 {pub ...

  9. C++编程练习:抽象类——编写一个程序,计算三角形、正方形的面积,抽象出一个基类base。

    例.编写一个程序,要求计算三角形.正方形的面积,抽象出一个基类base,在其中说明一个虚函数display( )用来展示其参数且求出面积. 代码如下: 头文件headfile.h: #pragma o ...

最新文章

  1. [转]ActionScript 3.0入门:Hello World、文件读写、数据存储(SharedObject)、与JS互调
  2. ECCV2020 收录论文汇总(持续更新中)附打包下载
  3. Elasticsearch Java Client 版本区别及起步(5.X 和6.X)
  4. 由浅到深理解ROS(8)-线程管理
  5. 品高工作流 - 基于InfoPath的自定义表单设计教程
  6. 斯皮尔 皮尔森 肯德尔_科学网-在SPSS软件相关分析中,pearson(皮尔逊), kendall(肯德尔) 和spearman(斯伯曼/斯皮尔曼)三种相关分析方法有什么异同(转)-刘斌的博文...
  7. 微信小程序(5)——下载图片
  8. JSP request对象
  9. 在Word中上下两张表格合并不了的解决办法
  10. 微众银行AI团队领衔推动人工智能国际标准的制定
  11. Samba服务和FTP服务
  12. Centos7防火墙与IPTABLES详解
  13. 马尾综合征的患者常用的药物
  14. Tokyo Dystopia 全文搜索
  15. Python 时间日期(datetime)
  16. 东游“休闲场”简析,来看一看具体的休闲场
  17. 2021年一级注册消防工程师的教材出了吗?
  18. 惠普笔记本 android,传惠普近期或发布14英寸Android笔记本电脑
  19. 小眼睛适合大框还是小框眼镜_近视眼镜大框好还是小框好?
  20. PG数据库性能优化二

热门文章

  1. Xception实现动物识别(TensorFlow)
  2. 盒马鲜生真的是新零售吗?
  3. Nexus的安装和使用
  4. 直线拟合c语言程序,ax+by+c=0 型直线拟合算法
  5. m2硬盘写入速度测试软件,实测:M2固态硬盘换个插槽传输速度竟然提升了约1000M!...
  6. 基于物理的渲染PBR(二):挑战手写pbr和IBL环境光部分的见解
  7. 全球及中国表面保护胶带行业研究及十四五规划分析报告
  8. 磕磕碰碰的Chrome之plugin开发
  9. Java 密码学相关知识
  10. 三星对韩国意味着什么?假如三星破产了,韩国会受到什么影响?