java数组问题(希望从原理上给我解释)

importjava.lang.Math;classArray{publicArray(inti){System.out.println("int型数组"+i);//Ar... import java.lang.Math;
class Array {
public Array(int i) {
System.out.println("int型数组" + i); // Array类构造函数
}
public Array(double i) { // Array类构造函数
System.out.println("double型数组" + i);
}
public Array(int i, int j) { // Array类构造函数
System.out.println("相乘数组" + i * j);
}
}
public class ArraySize {
public static void main(String[] args) {
Array[] ArrayB = new Array[5];
int[] ArrayC = new int[5]; // 创建int型数组
double[] ArrayD = new double[5]; // 创建double型数组
for (int i = 0; i < ArrayC.length; i++) {
ArrayC[i] = i ; // 给数组ArrayC赋值
ArrayB[i] = new Array(ArrayC[i]); // 给数组ArrayB赋值
}
for (int i = 0; i < ArrayD.length; i++) {
ArrayD[i] = Math.atan(i); // 给数组ArrayD赋值
ArrayB[i] = new Array(ArrayD[i]); // 给数组ArrayB赋值
}
for (int i = 0, j = 0; i < ArrayC.length; i++, j++) {
ArrayB[i] = new Array(ArrayC[i], ArrayC[j]);
// 给数组ArrayB赋值
}
}
}
问题是:(1)ArrayB[i] = new Array(ArrayC[i]);中,为何要把实例化的Array值赋给ArrayB?(2)Array[] ArrayB = new Array[5];我知道是实例化了一个Array对象(这个Array不是你自己定义的那个Array,而是java类库中的Array)。但作用是什么(能不能普及一下java类库中的Array是什么作用?)
如果我想输出ArrayB怎么办?
展开
 我来答
碧血玉叶花
推荐于2016-11-23 · TA获得超过4976个赞
知道大有可为答主
回答量:6154
采纳率:0%
帮助的人:1665万
展开全部
Students[] stu = new Students[5];这一步叫实例化,实例化是只在内存中给对象分配一个存储空间,不是指赋值。

Students[] stu = new Students[5];你在这一步指定了数组的类型是Students的,也就是说数组中只能存放Students的实例。stu[0]=90;stu[1]=100;

你这两部操作,是编译通不过的,你在一个Students类型的数组中存放了int型的变量,java不允许。

stu[0]=new Students();这句话是指你创建了一个Students类的实例,然后存放在了数组stu中。
追问
以上给了我很好的解释,不过感觉你还没说完吧。
还有一点请问一下,你说:“你这两部操作,是编译通不过的,你在一个Students类型的数组中存放了int型的变量,java不允许。”这一个问题也是我一直想问的问题,我想问的是如何解决?
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式