Java:求一组图形中的最大面积

本文介绍如何在Eclipse中,通过抽象类和子类的方式,利用给定图形的周长计算不同形状(如方形、圆形和六边形)的最大面积。通过实例化Shape数组并调用maxArea方法,找到并输出最大面积及其对应的图形类型。
摘要由CSDN通过智能技术生成

eclipse使用Java通过周长,求一组图形中的最大面积程序


前言

已知图形的周长c,通过周长,求一组图形中的最大面积:

  • 方形:0.0625cc

  • 圆形:0.0796cc

  • 六边形:0.0721cc

在这里插入图片描述

方案

抽取父类,构造抽象类

abstract class Shape{ //抽象类
	protected double c; //周长
	public abstract double area(); //抽象方法
}

代码实现

具体代码如下:

package oo.day05;
//找一组图形中的最大面积

public class ShapeTest {

	public static void main(String[] args) {
		//new Shape(); //编译错误,抽象类不能被实例化
		Shape[] shapes = new Shape[6]; //创建Shape数组对象
		shapes[0] = new Square(1); //方形面积
		shapes[1] = new Square(2);
		shapes[2] = new Circle(1); //圆形面积
		shapes[3] = new Circle(2);
		shapes[4] = new Circle(1); //六边形面积
		shapes[5] = new Circle(2);
		maxArea(shapes); //调取方法		
	}
	
	//找最大面积方法
	public static void maxArea(Shape[] shapes) {
		double max = shapes[0].area(); //假设第一个面积最大
		int maxIndex = 0; //假设最大下标为第一个
		for(int i=0;i<shapes.length;i++) { //遍历剩余面积
			double area = shapes[i].area(); //取每个对象元素的面积,赋给area
			if(area>max) { //每个元素和最大面积max比
				max = area; //面积大,将area的值给max
				maxIndex = i; //将最大面积值的下标赋给maxIndex
			}
		}
		System.out.println("最大面积为:"+max+",最大下标为:"+maxIndex);
	}
	
}

abstract class Shape{ //抽象类
	protected double c; //周长
	public abstract double area(); //抽象方法
}

class Square extends Shape{ //方形
	public Square(double c){ //构造方法,初始化赋值
		this.c = c;
	}
	public double area() { //重写抽象方法
		return 0.0625*c*c;
	}
}

class Circle extends Shape{ //圆形
	public Circle(double c) { //构造方法,初始化赋值
		this.c = c;
	}
	public double area() { //重写方法
		return 0.0796*c*c;
	}
}

class Six extends Shape{
	public Six(double c) { //构造方法,初始化赋值
		this.c = c;
	}
	public double area() { //重写方法
		return 0.0721*c*c;
	}
}

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小鹿快跑~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值