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