黑马程序员技术交流社区
标题:
对数组的length属性的疑问
[打印本页]
作者:
任亚俊
时间:
2013-8-7 19:32
标题:
对数组的length属性的疑问
int array[]=new int[10];
array.length;
复制代码
刚开始学的时候没注意,现在接触Java多了之后,突然对上面两行普普通通的代码有些疑惑了。
1. int不是基本数据类型吗,为什么可以用new关键字呢?
2. array只是一个变量,又不是对象,为什么可以有length属性?
作者:
肥猫
时间:
2013-8-7 19:41
首先,你这么定义是老式的了,快被淘汰了,这么写就看的更清楚了,int[] array = new int[10].他是一个INT型数组,并非基本数据类型,基本数据类型只有八种,所以当然可以有length属性.
作者:
心灵之歌
时间:
2013-8-7 20:56
int array[]=new int[10];
array.length;
复制代码
刚开始学的时候没注意,现在接触Java多了之后,突然对上面两行普普通通的代码有些疑惑了。
1. int不是基本数据类型吗,为什么可以用new关键字呢?/////首先int是基本数据类型没错,new是关键字。创建一个对象。
2. array只是一个变量,又不是对象,为什么可以有length属性?////这里我要指正,array是一个引用类型变量,length是数组的属性。而这里array恰恰是指向一个数组!
作者:
李政
时间:
2013-8-7 21:03
数组是一个对象,它的父类也是Object
length是一个成员变量,不是方法,所以不用加()
下面调用方法打印下这个数组的类名
class Demo
{
public static void main(String[] args)
{
System.out.println(new int[5].getClass().getName());//打印数组的类名 输出[I
// [ 表示数组 I表示整数 [I整数数组
}
}
复制代码
作者:
丁永志
时间:
2013-8-7 21:16
本帖最后由 丁永志 于 2013-8-7 21:17 编辑
int array[]=new int[10]; /*首先。注意 [] 这个括号在前面和后面有很大的区别,不是书写习惯的事,你看看二维数组就知道了。*/
array.length;
复制代码
.
问题1. int不是基本数据类型吗,为什么可以用new关键字呢?
int 确实是基本数据类型。 这里用到new 是创建一个新的int型 数组的意思。
int array[]=new int[10]; //这句的意思是,创建一个新的int型的长度是10的数组
你喜欢后面面向对象会详细的说,你现在就只需要是创建数组用的。
问题2. array只是一个变量,又不是对象,为什么可以有length属性?
array.length; // 这句的意思是,这个array.length 数组的长度 。length 是数组长度的意思。不知道你看到第几天,你可以再往后看看。
作者:
影响力147753321
时间:
2013-8-7 22:18
new 的是数组不是int,int[]当作一个整体在看的,表示建立了一个数组对象,把10加入到[]中只是表示分配了10块内存空间。并没有其它的意思。
而对于array是一个引用变量,它指向了一个内存空间为10的数组。在java中都是用引用调用对象的方法和属性的
因为不能直接拿对象来操作,其实你也拿不到。java玩的都是引用。保证了安全性。 也可以用对象直接来访问的,不过只能调用一次。
作者:
张智文
时间:
2013-8-7 22:37
int array[]=new int[10]; 这就是创建一个新的int型的长度是10的数组,//建议你多看几遍基础的视频~同时0基础表示绝对看没看一遍总能发现以前忽略的有用的知识。
l数组是一个对象,它的父类也是Object //后边会讲到。。
length是一个成员变量,array是数组对象可以直接调用成员变量。。
作者:
EYE_SEE_YOU
时间:
2013-8-8 07:52
本帖最后由 EYE_SEE_YOU 于 2013-8-8 07:54 编辑
int array[]=new int[10];
//[]是数组的标志,所以array[]是数组类型,而int表示数组内数据类型//new一个长度为10数组出来,数组名叫array,里面存放的是int类型
array.length;
//length是长度属性,放在数组类型array的后面自然是求它的长度啦
楼主也说明自己是刚开始学,希望楼主能常来论坛多多交流
作者:
一只文字
时间:
2013-8-8 08:28
array 是一个引用变量吧, 所以有length属性是正常的
作者:
What/
时间:
2013-8-8 09:53
ava1.5之后有自动装箱拆箱 在放入容器中时基本数据类型会被自动装箱成相应的引用类型。而且在使用容器时最好使用泛型,即 List<Integer> list=new ArrayList<Integer>();
作者:
刘劲松
时间:
2013-8-8 10:30
java里面把数组看做对象的
作者:
黑马王晓明
时间:
2013-8-8 21:56
int array[]=new int[10];
array.length;
1. int不是基本数据类型吗,为什么可以用new关键字呢?
int 是几本数据类型 但是new了一个int类型的数组 表示这个数组里面只能存int类型的数据
10表示给这个数组这个分配了10个空间用来存储10个int类型的数据 同样表示这个数组的长度 length
2. array只是一个变量,又不是对象,为什么可以有length属性?
array是一个引用型变量 指向了数组这个对象 length是数组的属性 array.length来获取这个数组的长度 或者说是 元素的个数
作者:
jingzhouheima
时间:
2013-8-9 19:44
int array[]=new int[10];//array是基本对象int数组的一个引用,而length是数组对象中的成员。
作者:
黄文军
时间:
2013-8-10 20:14
数组是引用类型, new 的是数组
作者:
如果我长大了。
时间:
2013-8-10 21:00
Int arr[] = new int[10];
arr这个变量是一个数组的引用。Int只是表示数组里面装的数据类型是int,并不是代表arr是int类型的变量。因为数组是引用类型的变量,所以在创建对象的时候用new关键字肯定是的。
一个对象肯定有它自己的属性了。所以length属性有也就不奇怪了。。。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2