我见过许多教程,它描述了数组是对象,它的对象被引用变量引用,如此
int a[]=new int[5];
但令我困惑的是,为了创建一个对象,我们需要构造函数,就像创建一个这样的简单对象一样
box b1=new box();
但是在创建数组对象时我们没有调用任何构造函数,而是我们这样编写int [5]那么这是什么?还有什么是数组对象的数据类型?
答案 0 :(得分:2)
对象的数组创建语法与基元没有什么不同,例如
Box[] boxArray = new Box[5];
现在,如果要在数组中创建框,可以使用构造函数语法:
boxArray[0] = new Box();
请注意,我继续将box
大写为Box
,因为以大写字母开头的班级名称基本上是公认的标准。
答案 1 :(得分:1)
对象是类实例或数组。
对于类实例化,我们需要构造函数。数组不代表类,因此不需要构造函数。类和数组都有不同的创建样式。请参阅JLS 15.9和JLS 15.10.1
关于数组的类型,来自JLS 10.1:
数组类型被写为元素类型的名称,后跟 一些空方括号[]。的数量 括号对表示数组嵌套的深度。
只有少数类/接口能够保存数组,请参阅JLS 4.10.3。
修改强>
因此,int[]
或任何其他数组称为引用类型,但不是类。对象由引用类型引用,而不是类。来自JLS 4.3,
有四种引用类型:类类型(第8.1节),接口 类型(第9.1节),类型变量(第4.4节)和数组类型(第10.1节)。