我正在学习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]=new Piece();谢谢你的帮忙!
发布于 2014-09-30 23:16:30
Java将将数组中的元素的值初始化为数据类型的默认值。
JLS,第4.12.5节包含默认值:
每个类变量、实例变量或数组组件在创建时都会使用默认值初始化(§15.9,§15.10.2):
对于基本类型,这是0或false,对于引用类型,默认值是null。因此,您需要像在上一个代码示例中一样,使用new初始化每个元素,否则将是null。
发布于 2014-09-30 23:17:44
private Piece positions[][]=new Piece[8][8];这将初始化由8x8 Piece引用组成的数组,而不是包含的元素。数组将是null-initialized,实际上每个单元格都将包含null。
https://stackoverflow.com/questions/26131718
复制相似问题