为了账号安全,请及时绑定邮箱和手机立即绑定

我想问maxArea方法中的参数是什么意思,怎么计算的。maxArea(shapes);这个为什么又这么写

我想问maxArea方法中的参数是什么意思,怎么计算的。maxArea(shapes);这个为什么又这么写

慕码人0306450 2016-12-14 22:48:42
package ooday05;//求一组图形中的最大面积public class ShapeTest { public static void main(String[] args) {   Shape [] shapes = new Shape[4]; //创建父类数组对象   shapes[0] = new Square(1);   shapes[1] = new Square(2);   shapes[2] = new Circle(1);   shapes[3] = new Circle(2);       maxArea(shapes); } public static void maxArea(Shape[] shapes ){//静态方法 double max = shapes[0].area(); double Index =0; for(int i =1;i<shapes.length;i++){ double arr =shapes[i].area(); if(arr>max){ max =arr; Index = i; } } System.out.println("最大值="+max+"最大下标="+Index); }}abstract class Shape{//抽象类 protected double c;//受保护的 本类,子类,同包类,周长 public abstract double area();//抽象方法}class Square extends Shape{//创造一个正方形的子类继承Shape父类 public Square(int c){ this.c =c; } public double area(){//公开的,任何类,重写父类方法 return 0.0625*c*c; }}class Circle extends Shape{ public Circle(int c){ this.c =c ; } public double area(){ return 0.0796*c*c; }}
查看完整描述

1 回答

?
逆光之羽

TA贡献55条经验 获得超13个赞

参数就是一组图形对象数组啊?你可以理解为一个盒子里面放了几个图形

maxArea方法中就是建了个临时变量存放最大面积,把其中的图形挨个拿出来,逐个和最大面积临时变量比较、如果比它大说明是已经拿出来的图形中最大的,就把它的赋值给临时变量,如果比它小、说明不是最大的图形就跳过。最后全部比完,临时变量存放的面积就是最大面积了。

程序基本逻辑如下:

Shape [] shapes = new Shape[4]; //创建父类数组对象	   
           shapes[0] = new Square(1); //通过构造方法指定周长值,于是图形面积就确定了,然后将新建的图形放入数组
	   shapes[1] = new Square(2); //同上
	   shapes[2] = new Circle(1); //同上
	   shapes[3] = new Circle(2); //同上
       maxArea(shapes);  //比对对象数组中图形的面积,并输出


查看完整回答
反对 回复 2016-12-15
  • 1 回答
  • 0 关注
  • 1742 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信