圆有半径,并提供计算面积的方法,类里有属性圆数组,设计三个方法,分别获取数组中最大面积的圆、最小面积的圆、所有圆的面积和。

解决方案 »

  1.   

    类里有属性圆数组:保存圆的半径
    数组中最大面积的圆:最大半径
    最小面积的圆:最小半径
    所有圆的面积和:PI(r1*r1+r2*r2....)
      

  2.   

    这个非常简单,一个 for套嵌if即可搞定
      

  3.   

    好吧,看在300分的面子上package test;public class Circle implements Comparable<Circle> { private double radius; public Circle(double radius) {
    this.radius = radius;
    } public double getArea() {
    return Math.PI * radius * radius;
    } public int compareTo(Circle circle4Compare) {
    return this.radius == circle4Compare.radius ? 0 
    : this.radius > circle4Compare.radius ? 1
    : -1;
    }
    }
    package test;import java.util.*;public class CircleData { private List<Circle> circleList = new ArrayList<Circle>();

    public void addCircle(Circle circle){
    circleList.add(circle);
    Collections.sort(circleList);
    }

    public Circle getMaxCircle(){
    if(circleList.size() > 0){
    return circleList.get(circleList.size() -1);
    }else{
    return null;
    }
    }

    public Circle getMinCircle(){
    if(circleList.size() > 0){
    return circleList.get(0);
    }else{
    return null;
    }
    }

    public double getSumCircle(){
    double sumArea = 0.0;
    for(Circle circle:circleList){
    sumArea += circle.getArea();
    }
    return sumArea;
    }

    public static void main(String[] args){

    CircleData circleData = new CircleData();

    circleData.addCircle(new Circle(2));
    circleData.addCircle(new Circle(1));
    circleData.addCircle(new Circle(4));
    circleData.addCircle(new Circle(3));

    System.out.println(circleData.getMinCircle().getArea());
    System.out.println(circleData.getMaxCircle().getArea());
    System.out.println(circleData.getSumCircle());
    }
    }
      

  4.   

    package csdn.p1;import java.util.ArrayList;
    import java.util.Collections;
    import java.util.List;/**
     * 圆有半径,并提供计算面积的方法,类里有属性圆数组,
     * 设计三个方法,分别获取数组中最大面积的圆、最小面积的圆、所有圆的面积和。
     * @author zty
     *
     */
    public class Test {
    private List<Circle> circles;
    public Test() {
    this.circles = new ArrayList<Circle>();
    }
    public Circle getMaxCircle() {
    Collections.sort(circles);
    return circles.get(circles.size()-1);
    }
    public Circle getMinCircle() {
    Collections.sort(circles);
    return circles.get(0);
    }
    public double getAllArea() {
    double areas = 0;
    for (Circle circle : circles) {
    areas = areas + circle.Area();
    }
    return areas;
    }
    public static void main(String[] args) {
    Test ts = new Test();
    ts.circles.add(new Circle(1));
    ts.circles.add(new Circle(2));
    ts.circles.add(new Circle(3));
    ts.circles.add(new Circle(4));
    ts.circles.add(new Circle(5));
    System.out.println("最大圆:"+ts.getMaxCircle().toString());
    System.out.println("最小圆:"+ts.getMinCircle().toString());
    System.out.println("面积和"+ts.getAllArea());
    }
    }
    class Circle implements Comparable<Circle>{
    private double radius;
    public Circle(double radius) {
    this.radius = radius;
    }
    public double Area() {
    return Math.PI*radius*radius;
    }
    @Override
    public int compareTo(Circle c) {
    return this.radius >=c.radius?
    (this.radius>c.radius?1:0)
    :-1;
    }
    @Override
    public String toString() {
    return "Circle [半径=" + radius + "]";
    }
    }