菜鸟关于一个数组的问题。谢谢
import java.lang.Math;
class Array{
  public Array(int i){
   System.out.println("int型数组"+i);
  }
  public Array(double i){
   System.out.println("double型数组"+i);
  }
  public Array(int i,int j){
   System.out.println("相乘数组"+i*j);
  }
}
public class shuzuone4  
{
  public static void main(String[] args) {
   Array[] ArrayB=new Array[5];
   int [] ArrayC=new int[5];
   double[] ArrayD=new double[5];
   for(int i=0;i<ArrayC.length;i++){
    ArrayC[i]=i;
    ArrayB[i]=new Array(ArrayC[i]);
   }
   for(int i=0;i<ArrayD.length;i++){
    ArrayD[i]=Math.atan(i);
    ArrayB[i]=new Array(ArrayD[i]);
   }
   for(int i=0,j=0;i<ArrayC.length;i++,j++){
    ArrayB[i]=new Array(ArrayC[i],ArrayC[j]);
   }
  }
}  
请问这个程序应该怎么理解,谢谢,希望能给出运算详细步骤,谢谢。
里面的:(1)Array(int i) 是什么意思?
              (2)for(int i=0;i<ArrayC.length;i++){
                       ArrayC[i]=i;                                    //第一步i=0 ArrayC[0]=0
                      ArrayB[i]=new Array(ArrayC[i]);    //ArrayB[0]=new Array(0) 这个怎么理解呢?
能够得到大家指点是我的荣幸。
------解决方案--------------------(1)Array(int i)   Array构造方法的一种。
  (2)ArrayB[0]=new Array(0)   将Array对象 存放到 ArrayB对象的这个数组里面去。
------解决方案--------------------Array(int i) {}是 类Array的构造函数,这个构造函数接收一个整型的参数,当创建对象如new Array(4)时,就会调用该构造函数创建对象。
ArrayB[i]=new Array(ArrayC[i]);是在给数组B赋值,因为前面已经Array[] ArrayB=new Array[5],当执行ArrayB[i]=new Array(ArrayC[i])的时候,ArrayC[i]是一个整型的数,假设为10,则ArrayB[i]=new Array(10);
因为new Array(10)是创建一个Array对象,即B中每个元素的值是一个Array类型的对象。
------解决方案--------------------import java.lang.Math;
class Array{
  public Array(int i){
 System.out.println("int型数组"+i);
  }
  public Array(double i){
 System.out.println("double型数组"+i);
  }
  public Array(int i,int j){
 System.out.println("相乘数组"+i*j);
  }
}
public class shuzuone4  
{
  public static void main(String[] args) {
 Array[] ArrayB=new Array[5];  //有new 关键字都是实例化这个数组,就是为这个数组
                                //创建一个对象
 int [] ArrayC=new int[5];
 double[] ArrayD=new double[5];
 for(int i=0;i<ArrayC.length;i++) //遍历这个数组,就是把数组中的元素赋值
 {
 ArrayC[i]=i;  //给数组中的每一个元素赋值
 ArrayB[i]=new Array (ArrayC[i]);//将数组C在数组B实例化的过程中,以参数的方式穿                                   //进去
 }
 for(int i=0;i<ArrayD.length;i++){  //这个上面的一样
 ArrayD[i]=Math.atan(i);
 ArrayB[i]=new Array(ArrayD[i]);
 }
 for(int i=0,j=0;i<ArrayC.length;i++,j++){
 ArrayB[i]=new Array(ArrayC[i],ArrayC[j]);
 }
  }
}
------解决方案--------------------这个自定义class Array 是没有意义的,因为在这个类的内部完全没有做任何事情,
就这个问题本身而言:(1):Array(int i) 是什么意思?
Array(int i) 是自定义class Array 的构造方法,判断是否是构造方法就看有没有返回类型,没有返回类型的而且方法名与类名一致的就是构造方法。
2)for(int i=0;i<ArrayC.length;i++){
 ArrayC[i]=i; //第一步i=0 ArrayC[0]=0
 ArrayB[i]=new Array(ArrayC[i]); //ArrayB[0]=new Array(0) 这个怎么理解呢?
构造方法是用来创建该类对象的方法,前面说过Array(int i)是构造方法,参数是整形的,而ArrayC[i]); 是整形值,ArrayB[i]=new Array(ArrayC[i]); 就创建了一个Array类的对象并保存在ArrayB[i]=中。因为这句代码调用的是Array(int i)这个构造方法,所以会执行这个构造方法里的代码:输出
System.out.println("int型数组"+i);