黑马程序员技术交流社区

标题: 数组对象是什么类的实例? [打印本页]

作者: shang1jk    时间: 2013-6-18 18:02
标题: 数组对象是什么类的实例?
数组对象是什么类的实例?
例如
int[] a = {1, 2, 3};
这里的a是什么类的实例?

如果能用贴上验证代码就更好了!

作者: 世界公民    时间: 2013-6-18 18:23
int[] 是一种数据类型
在你new的时候 相当于告诉编译器给它分配3个位置了,且位置里都装上了数据。

由于int[] a={1, 2, 3};只能放在一个类(比如well)里面
当这个放在public static viod main(String[] args){well i=new well();}里,这样就是一个实例了
所以说int[] a={1, 2, 3};这不能说是一个实例 。只有一个类被new了 那么才说它就是一个实例了。
作者: shang1jk    时间: 2013-6-18 19:10
世界公民 发表于 2013-6-18 18:23
int[] 是一种数据类型
在你new的时候 相当于告诉编译器给它分配3个位置了,且位置里都装上了数据。

那写成这样呢?
int[] a = new int[]{1,2,3};

这里用new了, 那么a是哪个类的实例?

作者: Super_Class    时间: 2013-6-18 19:22
shang1jk 发表于 2013-6-18 19:10
那写成这样呢?
int[] a = new int[]{1,2,3};

数组也是对象
作者: 姚志远    时间: 2013-6-18 19:52
这里不是任何类的实例因为有类生成对象才成为类的实例化过程。下面说说数组吧:
数组只是用来存储同一种数据类型的数据,一旦初始化完成,即所占的空间就已固定下来,
即使某个元素被清空,但其所在空间仍然保留,因此数组长度将不能被改变。
你这里只是说明了数组的长度。
作者: shang1jk    时间: 2013-6-18 19:58
Super_Class 发表于 2013-6-18 19:22
数组也是对象

是哪个类的实例对象呢?
作者: shang1jk    时间: 2013-6-18 20:00
姚志远 发表于 2013-6-18 19:52
这里不是任何类的实例因为有类生成对象才成为类的实例化过程。下面说说数组吧:
数组只是用来存储同一种数 ...

数组不是某个类的对象吗?

我好迷糊啊.....
作者: shang1jk    时间: 2013-6-18 20:03
  1. class Test
  2. {
  3.         public static void main(String[] args)
  4.         {               
  5.                 int[] a = new int[]{1,2,3};
  6.                  
  7.                 System.out.println(a.getClass());
  8.                 System.out.println(a.getClass().getSuperclass());
  9.         }
  10. }
复制代码
这样测试了一下, 输出的结果是:
class [I
class java.lang.Object

这样说明整型数组是 [I 类,
整型数组的父类是 Object类,
[I 可以理解成一个类名称吗?
作者: 孙百鑫    时间: 2013-6-22 02:10
楼主您好~帖子长时间未作出回答,我已经将您的帖子改成已解决。如果有问题的话可以私密我哦~
作者: shang1jk    时间: 2013-6-22 07:06
孙百鑫 发表于 2013-6-22 02:10
楼主您好~帖子长时间未作出回答,我已经将您的帖子改成已解决。如果有问题的话可以私密我哦~ ...

其实还没解决...
不过既然没人回答了, 就这样吧!
作者: 孙百鑫    时间: 2013-6-22 07:23
shang1jk 发表于 2013-6-22 07:06
其实还没解决...
不过既然没人回答了, 就这样吧!

我觉得数组也是一个类。既然是类自然继承自Object
那么楼住说的
int[] a = new [3];

int[] a = {1,2,3,};
第二种是第一种的简写形式而已。a只是栈内存的中引用。而楼主说的是哪个对象的实例化。应该就是int[]数组类型的。
仅为个人意见,仅供参考。
作者: 孙百鑫    时间: 2013-6-22 07:24
shang1jk 发表于 2013-6-22 07:06
其实还没解决...
不过既然没人回答了, 就这样吧!

我觉得数组也是一个类。既然是类自然继承自Object
那么楼住说的
int[] a = new [3];

int[] a = {1,2,3,};
第二种是第一种的简写形式而已。a只是栈内存的中引用。而楼主说的是哪个对象的实例化。应该就是int[]数组类型的。
仅为个人意见,仅供参考。
作者: shang1jk    时间: 2013-6-22 08:20
孙百鑫 发表于 2013-6-22 07:24
我觉得数组也是一个类。既然是类自然继承自Object
那么楼住说的
int[] a = new [3];

具体到API文档中的哪个类呢?

java.xxx.xxx.Xxx这样子的话是哪一个?




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