关于java
java中数组是不是对象?看一本书,书上说java中数组不是对象,他与真正对象的区别在于数组不属于Array类。数组并不能很好的纳入java的对象的层次结构。没有从Obj...
java中数组是不是对象?看一本书,书上说java中数组不是对象,他与真正对象的区别在于数组不属于Array类。数组并不能很好的纳入java的对象的层次结构。没有从Object继承任何属性,也不能派生子类,只是大多数情况下被当做对象。
求解释,不明白。不属于Array类与是不是对象有什么关系?对象又不是都属于Array类 展开
求解释,不明白。不属于Array类与是不是对象有什么关系?对象又不是都属于Array类 展开
5个回答
展开全部
java中包括8种原生数据类型(primitive data type) 包括byte,short,int,lang,float,double,char,boolean,除了这8种原生数据类型,其他的都是对象
在java中,数组是一种包含了同一种数据类型的集合,也就是说,数组里面的元素的类型必须是相同的。 数组既可以装原生数据类型,也可以装对象的引用。
一维数组的声明方式 type [] 数组名 = new 数组名[数组大小];
也可以是type [] 数组名 = {new 数组名[]}{数据1,数据2,数据3,.....}
例如 int [] i = new int[10]; long [] l = new long[]{1000,200,300} --------数组里面装的是原生数据类型,不是对象的引用
而 String[] str = new String[3]; Object[] o = new Object[5]; ---------数组里面装的是对象的引用,注意是对象的引用而不是对象本身,也就是说里面装的是对象的地址
所以数组严格的说是一种数据类型,我们可以通过java.util.Arrays类(这个类是继承Object的)里面的方法来操纵数组里面的元素,例如 int [] i = new int[10] 通过i.length()来返回数组的长度
所以 Array类不仅能操纵对象的引用,并通过对象的引用来操纵对象,也可以来操纵原生数据类型。
对象是一个具体的概念,它是类的具体表现形式,而Array类是一个类
希望你能明白
在java中,数组是一种包含了同一种数据类型的集合,也就是说,数组里面的元素的类型必须是相同的。 数组既可以装原生数据类型,也可以装对象的引用。
一维数组的声明方式 type [] 数组名 = new 数组名[数组大小];
也可以是type [] 数组名 = {new 数组名[]}{数据1,数据2,数据3,.....}
例如 int [] i = new int[10]; long [] l = new long[]{1000,200,300} --------数组里面装的是原生数据类型,不是对象的引用
而 String[] str = new String[3]; Object[] o = new Object[5]; ---------数组里面装的是对象的引用,注意是对象的引用而不是对象本身,也就是说里面装的是对象的地址
所以数组严格的说是一种数据类型,我们可以通过java.util.Arrays类(这个类是继承Object的)里面的方法来操纵数组里面的元素,例如 int [] i = new int[10] 通过i.length()来返回数组的长度
所以 Array类不仅能操纵对象的引用,并通过对象的引用来操纵对象,也可以来操纵原生数据类型。
对象是一个具体的概念,它是类的具体表现形式,而Array类是一个类
希望你能明白
追问
我想你是误会了,这点儿我懂。我不明白的是“数组不是对象,他与真正对象的区别在于数组不属于Array类。”这句话。对象和Array类有什么关系吗?我随便创建一个类,就Xxx,按原句中说的,有Xxx类创建出来的对象与数组的区别在于数组不属于Array类,难道Xxx创建的对象就属于Array类吗?我想这应该是错的吧。您回答的很多,但并不是我问的。您说的我是知道,我还没笨到对象与类的关系还分不清的份上。
展开全部
从java语言说,数组是一种数据类型。可以当作对象,但只有属性,没有方法。
数组要先声明然后才能使用。
语法:数据类型 数组名[ ];或数据类型[ ] 数组名;
数据类型既可以是基本数据类型也可以是引用数据类型,数组名可以是任意的合法变量名。
如:
int [ ] score;
double height[ ];
String[ ] name;
注意,不可在数组名后的方括号内指定数组元素的个数,如int sum[10];是错误的。
而Java中有一个Arrays类,专门用来操作array。
arrays中拥有一组static函数,
equals():比较两个array是否相等。array拥有相同元素个数,且所有对应元素两两相等。
fill():将值填入array中。
sort():用来对array进行排序。
binarySearch():在排好序的array中寻找元素。
System.arraycopy():array的复制。
数组要先声明然后才能使用。
语法:数据类型 数组名[ ];或数据类型[ ] 数组名;
数据类型既可以是基本数据类型也可以是引用数据类型,数组名可以是任意的合法变量名。
如:
int [ ] score;
double height[ ];
String[ ] name;
注意,不可在数组名后的方括号内指定数组元素的个数,如int sum[10];是错误的。
而Java中有一个Arrays类,专门用来操作array。
arrays中拥有一组static函数,
equals():比较两个array是否相等。array拥有相同元素个数,且所有对应元素两两相等。
fill():将值填入array中。
sort():用来对array进行排序。
binarySearch():在排好序的array中寻找元素。
System.arraycopy():array的复制。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
java中除了八个原生数据类型,其他都属于对象。数组在赋值时都是new一个对象进去的,如
int[] score = null ;
score[0]=new Integer(1);
int[] score = null ;
score[0]=new Integer(1);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
java的基本思想就是“万物皆对象”,数组也不例外。
唯一例外的是8种原始数据类型,但它们都有相应的封装类,并且可以自动装箱和脱箱!
唯一例外的是8种原始数据类型,但它们都有相应的封装类,并且可以自动装箱和脱箱!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如 int array[] = new int[10];
没有Array类啊
只是int 类
没有Array类啊
只是int 类
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询