A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 任亚俊 中级黑马   /  2013-8-7 19:32  /  3126 人查看  /  14 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. int array[]=new int[10];
  2. array.length;
复制代码
刚开始学的时候没注意,现在接触Java多了之后,突然对上面两行普普通通的代码有些疑惑了。
1. int不是基本数据类型吗,为什么可以用new关键字呢?
2. array只是一个变量,又不是对象,为什么可以有length属性?

评分

参与人数 1技术分 +1 收起 理由
Sword + 1

查看全部评分

14 个回复

倒序浏览
       首先,你这么定义是老式的了,快被淘汰了,这么写就看的更清楚了,int[] array = new int[10].他是一个INT型数组,并非基本数据类型,基本数据类型只有八种,所以当然可以有length属性.
回复 使用道具 举报
int array[]=new int[10];
array.length;
复制代码
刚开始学的时候没注意,现在接触Java多了之后,突然对上面两行普普通通的代码有些疑惑了。
1. int不是基本数据类型吗,为什么可以用new关键字呢?/////首先int是基本数据类型没错,new是关键字。创建一个对象。
2. array只是一个变量,又不是对象,为什么可以有length属性?////这里我要指正,array是一个引用类型变量,length是数组的属性。而这里array恰恰是指向一个数组!

评分

参与人数 1技术分 +1 收起 理由
Sword + 1

查看全部评分

回复 使用道具 举报
数组是一个对象,它的父类也是Object  
length是一个成员变量,不是方法,所以不用加()  

下面调用方法打印下这个数组的类名
  1. class Demo
  2. {
  3. public static void main(String[] args)
  4. {
  5.   System.out.println(new int[5].getClass().getName());//打印数组的类名 输出[I  
  6.                //  [ 表示数组 I表示整数 [I整数数组
  7. }
  8. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
Sword + 1

查看全部评分

回复 使用道具 举报
本帖最后由 丁永志 于 2013-8-7 21:17 编辑
  1. int array[]=new int[10];    /*首先。注意 [] 这个括号在前面和后面有很大的区别,不是书写习惯的事,你看看二维数组就知道了。*/
  2. array.length;
复制代码
.


问题1. int不是基本数据类型吗,为什么可以用new关键字呢?
    int 确实是基本数据类型。    这里用到new 是创建一个新的int型 数组的意思。  
int array[]=new int[10];   //这句的意思是,创建一个新的int型的长度是10的数组

你喜欢后面面向对象会详细的说,你现在就只需要是创建数组用的。

问题2.  array只是一个变量,又不是对象,为什么可以有length属性?
array.length;  // 这句的意思是,这个array.length 数组的长度 。length 是数组长度的意思。不知道你看到第几天,你可以再往后看看。

评分

参与人数 1技术分 +1 收起 理由
Sword + 1

查看全部评分

回复 使用道具 举报
new 的是数组不是int,int[]当作一个整体在看的,表示建立了一个数组对象,把10加入到[]中只是表示分配了10块内存空间。并没有其它的意思。
而对于array是一个引用变量,它指向了一个内存空间为10的数组。在java中都是用引用调用对象的方法和属性的
因为不能直接拿对象来操作,其实你也拿不到。java玩的都是引用。保证了安全性。    也可以用对象直接来访问的,不过只能调用一次。

评分

参与人数 1技术分 +1 收起 理由
Sword + 1

查看全部评分

回复 使用道具 举报
int array[]=new int[10];   这就是创建一个新的int型的长度是10的数组,//建议你多看几遍基础的视频~同时0基础表示绝对看没看一遍总能发现以前忽略的有用的知识。
l数组是一个对象,它的父类也是Object  //后边会讲到。。
length是一个成员变量,array是数组对象可以直接调用成员变量。。


评分

参与人数 1技术分 +1 收起 理由
Sword + 1

查看全部评分

回复 使用道具 举报
本帖最后由 EYE_SEE_YOU 于 2013-8-8 07:54 编辑

int array[]=new int[10];
//[]是数组的标志,所以array[]是数组类型,而int表示数组内数据类型//new一个长度为10数组出来,数组名叫array,里面存放的是int类型
array.length;
//length是长度属性,放在数组类型array的后面自然是求它的长度啦
楼主也说明自己是刚开始学,希望楼主能常来论坛多多交流

评分

参与人数 1技术分 +1 收起 理由
Sword + 1

查看全部评分

回复 使用道具 举报
array 是一个引用变量吧, 所以有length属性是正常的
回复 使用道具 举报
ava1.5之后有自动装箱拆箱 在放入容器中时基本数据类型会被自动装箱成相应的引用类型。而且在使用容器时最好使用泛型,即 List<Integer> list=new ArrayList<Integer>();

评分

参与人数 1技术分 +1 收起 理由
滔哥 + 1

查看全部评分

回复 使用道具 举报
java里面把数组看做对象的
回复 使用道具 举报
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来获取这个数组的长度 或者说是 元素的个数

评分

参与人数 1技术分 +1 收起 理由
Sword + 1

查看全部评分

回复 使用道具 举报
int array[]=new int[10];//array是基本对象int数组的一个引用,而length是数组对象中的成员。
回复 使用道具 举报
数组是引用类型, new 的是数组
回复 使用道具 举报
Int arr[] = new int[10];
arr这个变量是一个数组的引用。Int只是表示数组里面装的数据类型是int,并不是代表arr是int类型的变量。因为数组是引用类型的变量,所以在创建对象的时候用new关键字肯定是的。
一个对象肯定有它自己的属性了。所以length属性有也就不奇怪了。。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马