将具有不同参数的对象添加到数组中

时间:2014-09-09 20:19:22

标签: java arrays

所以我有这个问题,

课程圈

  1. 包含存储半径的适当属性。
  2. 包含一个构造函数,其中包含一个用于设置半径的参数。
  3. 包含set和get方法。
  4. 包含计算面积的方法和另一种计算方法 圆周上。
  5. Circle应包含适当的属性以跟踪(计数)的数量 实例化圆形对象。
  6. Class TestCircle:

    创建一个包含10个半径为1.0,2.0,...,10.0的圆的数组。

    打印每个圆圈的区域和周长。

    检索并打印已实例化的圈数。

    我的代码是:

    public class Circle {   
      public double radius= 0.0;
      public int counter;
      public Circle (double radius){
        this.radius = radius;
        counter++;
      }
      public Circle (){
      }
    
      public void setRadius (double radius){
        this.radius = radius;
      }
      public double getRadius (){
        return radius;
      }
      public double Area (){
        return 3.14*radius*radius;
      }
      public double Circumference (){
        return 2*3.14*radius;
      }
    }
    
    
    public class TestCircle {
      public static void main (String args []){
        Circle [] arr = new Circle [10];
        System.out.println ("The circumference" + arr.Circumference());
        System.out.println ("The area" + arr.Area());
        System.out.println ("The number of circles" + arr.counter);
      }
    }
    

    我的问题是: 我该如何创建10个不同半径的圆形对象并将其添加到数组中? 我知道这个想法是通过使用for循环将对象添加到数组中,但我无法将半径添加到进程中。

    谢谢。

2 个答案:

答案 0 :(得分:0)

创建for循环,遍历每个数组单元格。然后,您创建一个新的Circle对象并调用其setRadius函数。然后,将数组Cell设置为等于Circle对象,并继续迭代直到数组填满。

此外,您的计数器应该是静态的(由Fildor更正)。考虑将radius设置为私有,看看你放入getter / setter。

答案 1 :(得分:0)

您的代码可能会更改

public class Circle {   
    private double radius;
    private static int numberOfCircles = 0;
    public Circle (double radius){
      this.radius = radius;
      numberOfCircles++;
      System.out.println("The circumference : " + getCircumference());
      System.out.println("The area : " + getArea());
    }

    public double getRadius (){
      return radius;
    }
    public double getArea (){
      return 3.14*radius*radius;
    }
    public double getCircumference (){
      return 2*3.14*radius;
    }

    public static int getNumberOfCirclesCreated(){
       return numberOfCircles;
    }
}


public class TestCircle {
  public static void main (String args []) {
      Circle [] circles = new Circle [10];
      for(int counter=0;counter< circles.length;counter++){
         circles[counter]=new Circle((double)(counter+1));
      }
      System.out.println("Number of circles : " + Circle.getNumberOfCirclesCreated());
   }
}