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)Array[] ArrayB = new Array[5]; 这句话算不算实例化一个对象?还是有其他作用(2) ArrayB[i] = new Array(ArrayC[i]); 为什么要使用new?这整句话的作用(最好能一个一个语法解释一下。
新学java,所以请大神详细解释一下。 展开
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)Array[] ArrayB = new Array[5]; 这句话算不算实例化一个对象?还是有其他作用(2) ArrayB[i] = new Array(ArrayC[i]); 为什么要使用new?这整句话的作用(最好能一个一个语法解释一下。
新学java,所以请大神详细解释一下。 展开
3个回答
展开全部
首先,你的Array类并不能产生数组的效果,甚至会让你在理解代码的时候产生误解,最好把所有以Array为名的东西改下名。
你问题的答案:这里,ArrayB是一个由5个Array class 组成的数组,当Array[] ArrayB = new Array[5];执行时,实例化的是数组对象,里面的成员默认为null,这时就需要后面的ArrayB[i] = new Array(ArrayC[i]); 组它一一赋值
你问题的答案:这里,ArrayB是一个由5个Array class 组成的数组,当Array[] ArrayB = new Array[5];执行时,实例化的是数组对象,里面的成员默认为null,这时就需要后面的ArrayB[i] = new Array(ArrayC[i]); 组它一一赋值
追问
第一:那么ArrayB是不是存放数组的数组?
第二:我想问一下如果我想输出ArrayB,怎么写?
追答
ArrayB只是一个数组,一个"Array"对象的数组;
输出的话,可以用循环,也可以用Arrays.toString(ArrayB);
2015-05-25
展开全部
1、用new关键字就是在堆中申请一片内存空间,实际上就是实例化了一个Array对象(这个Array不是你自己定义的那个Array,而是java类库中的Array)。
2、这里必须使用new,因为在java中实例化一个对象就是要使用new。
2、这里必须使用new,因为在java中实例化一个对象就是要使用new。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1 是初始化了一个数组 这个数组也是对象,说以 可以说是实例化了一个对象
2 new 是你创建了一个array对象后,指明java虚拟机为其分配相应的内存。不懂的话请百度
java new 关键字
2 new 是你创建了一个array对象后,指明java虚拟机为其分配相应的内存。不懂的话请百度
java new 关键字
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询