黑马程序员技术交流社区

标题: 复习数组反射中遇到的疑惑(急) [打印本页]

作者: 孔肖    时间: 2012-9-29 10:01
标题: 复习数组反射中遇到的疑惑(急)
张老师说:基本数据类型的一维数组,可以当做Objcet,而对于二维数组和非基本数据类型的数组,可以当做Object[]。
也就是说,String[] s1 = new String[]{"a","b","c"};
                  Object[] obj1 = s1;
因为String是Object的子类,这个可以理解。

但是对于String类型的二维数组,我试了试也可以,这又该如何理解呢?
         String[][] s2 = new String[][]{new String[]{"a","b"},new String[]{"c","d"}};
         Object[] obj2 = s2;
作者: 高照    时间: 2012-9-29 10:15
但是对于String类型的二维数组,我试了试也可以,这又该如何理解呢?
         String[][] s2 = new String[][]{new String[]{"a","b"},new String[]{"c","d"}};
         Object[] obj2 = s2;

你可以这样理解 String[][] s2 ,把他当做String[] s2[];
这样Object[] obj2 = s2;等价于obj2=s2[];



作者: 杨政    时间: 2012-9-29 10:27
本帖最后由 杨政 于 2012-9-29 10:28 编辑

String[][] s2 = new String[][]{new String[]{"a","b"},new String[]{"c","d"}};
         Object[] obj2 = s2;
Object[]是一个Object类型的一维数组,而里面Object类型的数组元素又是一维数组,这样Object[]既是一个Object类型的一维数组,也是一个String类型的二维数组了。所以才有Object[] obj2 = s2;


String[][] s2 = new String[][]{new String[]{"a","b"},new String[]{"c","d"}};
Object[] obj2 = s2;
可以理解为
String[] s1 = new String[]{"a","b"};
String[] s2 = new String[]{"c","d"};
Object  obj1= s1;
Object  obj2 = s2;
Object[] obje = new Object[]{obj1,obj2};




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2