黑马程序员技术交流社区

标题: 数组的问题 [打印本页]

作者: 何俊森    时间: 2013-5-12 15:05
标题: 数组的问题
本帖最后由 何俊森 于 2013-5-12 20:17 编辑

        int[] a1 = new int[3];
        int[] a2 = new int[4];
        int[][] a3 = new int[2][3];
        String[] a4 = new String[3];
        Object aObj1 = 1;
        Object aObj2 = a4;
        Object[] aObj3 = a1;//这条语句有错?如何解释(Object aObj1 = 1;)这条没有错?
        Object[] aObj4 = a3;
        Object[] aObj5 = a4;

作者: 任江峰    时间: 2013-5-12 15:18
本帖最后由 任江峰 于 2013-5-12 15:26 编辑

Object[] aObj3 = a1;这条有错,把一个int[]数组类型的引用赋值给Object[]数组类型的引用aObj3。类型不匹配:一个是int[]类型的引用,一个是Object类型的引用。
Object aObj1 = 1;这条没有错,这里是使用了int数据类型的自动装箱。把一个int类型的数值1,自动装箱成Object类型的对象aObj1。
从这个例子看出:基本数据类型可以自动装箱成Object,而基本数据类型数组int[]的引用,无法自动装箱成Object[]类型数组的引用。
作者: 赵利斌    时间: 2013-5-12 15:24
一样想知道 该怎么解释呢??????
作者: 、__WSD吴少东    时间: 2013-5-12 15:37
楼上回答完了,我copy下,给你说全了

        int[] a1 = new int[3];
         int[] a2 = new int[4];
         int[][] a3 = new int[2][3];
         String[] a4 = new String[3];
         Object aObj1 = 1; //基本数据类型自动装箱成对象,这就是一个体现
         Object aObj2 = a4;  //String类型,自己本事就相当于是对象的存在,也可以认为String类型就是对象,反正我是这么认为的,到现在为止没遇到过跟这个有冲突的事情发生
         Object[] aObj3 = a1; //数组,属于引用数据类型, 你将个int[]类型的引用赋给一个Object[]数组,那怎么可能成功呢?  他存的可是对象,不是对象的引用哦亲~!
                                          // 这不就相当于你拿着一个鸡蛋非要找鹅说,给你的蛋,帮我孵出来一 样一样的么...  笑一笑
        Object[] aObj4 = a3;   //这个可以成功,是因为二维数组,是以对象的形式存在于内存中的,我没记错的话,老毕视频有提到过这句话...我要是记错了,那你就当我扯淡吧,
                                          //看来我也该回头看看基础视频了....  
         Object[] aObj5 = a4;
作者: chouwayメ    时间: 2013-5-12 15:43
本帖最后由 chouwayメ 于 2013-5-12 19:56 编辑

试验了下Object aObj1 = 1;一样也不行额;
提示:    类型不匹配:不能从 int 转换为 Object[]
然后我全试验了,都不行。。。
类型不匹配。

Object a=new String ("a") 这个倒可以。  {:soso_e128:}原因这不多态么。。。  




------------------------------事后发现了 是打错了。。。sorry
作者: 、__WSD吴少东    时间: 2013-5-12 15:48
chouwayメ 发表于 2013-5-12 15:43
试验了下Object aObj1 = 1;一样也不行额;
提示:    类型不匹配:不能从 int 转换为 Object[]
然后我全试 ...

不是啊,我实验了下,没问题...C:\Users\shaodong\Desktop

未命名.jpg (39.77 KB, 下载次数: 0)

未命名.jpg

作者: chouwayメ    时间: 2013-5-12 15:51
、__WSD吴少东 发表于 2013-5-12 15:48
不是啊,我实验了下,没问题...

我是在eclipis上弄的 ,刚写完边上就红x了。
作者: 、__WSD吴少东    时间: 2013-5-12 15:54
chouwayメ 发表于 2013-5-12 15:51
我是在eclipis上弄的 ,刚写完边上就红x了。

那就不知道了,现在还是感觉eclipis 太乱了。。
作者: 仲伟    时间: 2013-5-12 17:09
类型不匹配:不能转换成int[]Object[]
在jdk1.5,只有有一个叫做可变参数问题,
你去张孝祥老师的视频提到啊,
int[] 看做一个object,而不能是object[]
String[] 的话就可以认为是 object[]
多看看张孝祥老师高级java视频
Object aObj3 = a1;
作者: 何俊森    时间: 2013-5-12 20:14
仲伟 发表于 2013-5-12 17:09
类型不匹配:不能转换成int[]Object[]
在jdk1.5,只有有一个叫做可变参数问题,
你去张孝祥老师的视频提到啊 ...

视频里这样的说的,int无法转化 为Object
作者: 仲伟    时间: 2013-5-12 20:17
何俊森 发表于 2013-5-12 20:14
视频里这样的说的,int无法转化 为Object

你在看看 int[] 看成一个object啊
所以不能看成 object[]
作者: 仲伟    时间: 2013-5-12 20:19
何俊森 发表于 2013-5-12 20:14
视频里这样的说的,int无法转化 为Object

你给我金币干嘛,哎,没有技术分啊
作者: 何俊森    时间: 2013-5-12 20:25
我没法给技术分,只能给金币。{:soso_e121:}
作者: 何俊森    时间: 2013-5-12 20:27
仲伟 发表于 2013-5-12 20:19
你给我金币干嘛,哎,没有技术分啊

。。。:D
作者: 仲伟    时间: 2013-5-12 20:33
何俊森 发表于 2013-5-12 20:27
。。。

哎,你明白了,刚刚那个问题啊
作者: 仲伟    时间: 2013-5-12 20:34
何俊森 发表于 2013-5-12 20:25
我没法给技术分,只能给金币。

你都三十分了啊
作者: 何俊森    时间: 2013-5-12 22:25
仲伟 发表于 2013-5-12 20:33
哎,你明白了,刚刚那个问题啊

暂时没有看到更好的解释。
作者: 何俊森    时间: 2013-5-12 22:25
仲伟 发表于 2013-5-12 20:34
你都三十分了啊

技术分慢慢来,快的。
作者: 仲伟    时间: 2013-5-12 22:26
何俊森 发表于 2013-5-12 22:25
技术分慢慢来,快的。

我马上就够25







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