java数组的赋值问题

刚刚学习Java 对于数组的使用老出现一些下问题,想请牛人指点下。

遇到一个问题:
 在类当中申明了一个二维矩阵Matrix。已经知道了数组各参数的值,
我可以在申明的时候就直接赋值
public int[][] mapMatrix={
{ 1, 2, 3},
{4,5,6},
};
但是却不能分开在类的构造函数中赋值。
mapMatrix={
{ 1, 2, 3},
{4,5,6},
};
Eclipse会报出
Array constants can only be used in initializers
的错误。请问这是为什么?





Java语法的规定就是这样。
在声明中,= 后面的内容叫做initializer,
在赋值表达式中, = 后面应该跟表达式。
而Java并不把{{1,2,3},{4,5,6}}看作是表达式。

其实我认为Java允许你的第一种写法是尽量向C靠拢。 其实在第一种写法的数祖初始化时
,作了两件事情:创建数组对象,将数组对象的引用赋给标识符。
而在赋值表达式中,就只是赋值,而不是创建数组。如果需要创建数组,需要使用数组创
建表达式。简单说就是用new。你可以这样写:

public int[][] mapMatrix;
mapMatrix=new int[][]{{1,2,3},{4,5,6}};


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值