根据这个问题(Is an array an object in java),数组被认为是Java中的对象。
该问题的答案主要引用了语言规范。我的问题是该对象有哪些方法和字段?我可以直接实例化它(int[] myArr = new Array<int>()
或类似的东西)吗?简而言之,它是如何运作的?
快速搜索没有结果。我看到Arrays
对象的JavaDoc(用于排序数组等),而Array
没有JavaDoc。
编辑:
为了清楚起见,我并没有尝试第一次学习使用数组。我在问一个关于java语言机制的问题。我知道我可以创建一个数组:
int[] a = new int[3];
我问是否有不同的方法 - 因为它是一个对象,是否有一个对象构造函数可以工作?是否有关于数组对象的文档?
答案 0 :(得分:4)
数组具有公共最终length
属性。它们实现了Cloneable
和Serializable
接口。当然,他们继承了Object
(equals()
,hashCode()
,wait()
等所有方法。
在您尝试提问时,没有可用于构建实例的类。实例化它们的语法是
int[] myArr = new int[someLength];
或者,用非默认值填充它们;
int[] myArr = new int[] {1, 2, 3};
您也可以使用
int[] myArr = {1, 2, 3};
但请注意,您不能使用此短语法为先前声明的变量赋值。即你可以做到
myArr = new int[] {1, 2, 3};
但不是
myArr = {1, 2, 3};
答案 1 :(得分:1)
Bozho的摘录回答了类似的问题 Why isn't there a java.lang.Array class? If a java array is an Object, shouldn't it extend Object?
数组是一种语言功能 - 它们具有特定的语法 声明和访问。他们的类定义是隐藏的 你。
他们在refleciton API中有代表 - java.lang.reflect.Array中
答案 2 :(得分:0)
您可以使用与任何其他Class对象类似的方式声明数组。
如果您在申报时无法确定阵列的大小,那么您可以这样做---
class ArrayExample
{
int arr[];
public static void main()
{
//take length as input from the user
arr=new int[anylength];
//now do whatever you want to do with this array object
}
}