Java如何处理初始化由对象组成的数组?
我正在学习java,对于我正在创建的特定应用程序,我正在初始化一个2D对象数组。初始化时将占用数组的特定对象更改其no args构造函数中的多个变量。我想知道当声明数组时,java是否初始化数组所有元素中的每个变量:Java如何处理初始化由对象组成的数组?,java,arrays,object,Java,Arrays,Object,我正在学习java,对于我正在创建的特定应用程序,我正在初始化一个2D对象数组。初始化时将占用数组的特定对象更改其no args构造函数中的多个变量。我想知道当声明数组时,java是否初始化数组所有元素中的每个变量: private Piece positions[][]=new Piece[8][8]; 还是有必要这样做 for(int i=0;i<8;i++){ for(int j=0;j<8;j++){ Positions[i][j]=
private Piece positions[][]=new Piece[8][8];
还是有必要这样做
for(int i=0;i<8;i++){
for(int j=0;j<8;j++){
Positions[i][j]=new Piece();
for(inti=0;iJava将数组中元素的值初始化为数据类型的默认值
其中,包含默认值:
每个类变量、实例变量或数组组件在创建时都会使用默认值进行初始化(§15.9、§15.10.2):
- 对于byte类型,默认值为零,即(byte)0的值
- 对于short类型,默认值为零,即(short)0的值
- 对于int类型,默认值为零,即0
- 对于long类型,默认值为零,即0L
- 对于类型float,默认值为正零,即0.0f
- 对于double类型,默认值为正零,即0.0d
- 对于char类型,默认值为空字符,即“\u0000”
- 对于boolean类型,默认值为false
- 对于所有参考类型(§4.3),默认值为空
对于基本类型,这是0
或false
,对于引用类型,默认值是null
。因此,是的,您需要使用new
初始化上一个代码示例中的每个元素,否则它将是null
private Piece positions[][]=new Piece[8][8];
这将初始化8x8片段
引用的数组,而不是包含的元素。该数组将被null初始化
,实际上每个单元格将包含null
private Piece positions[][]=new Piece[8][8];