猿问

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

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;

}

}


慕码人0306450
浏览 1743回答 1
1回答

逆光之羽

参数就是一组图形对象数组啊?你可以理解为一个盒子里面放了几个图形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);  //比对对象数组中图形的面积,并输出
随时随地看视频慕课网APP

相关分类

Java
我要回答