关于JAVA类对象数组的创建

本人近期学习JAVA,从基础看起,在学到类构造函数重载时,使用不同的构造函数创建对象,看起来代码非常冗杂,就想着使用数组的方式一次性创建多个对象。

本人结合字符串String数组创建的办法创建类对象,代码如下:

M[] m = {(),("小旺财"),("大旺财",0),("王旺财",5,'女')};

却发现程序报错:

---------- javac ----------
J630f.java:11: 错误: 需要->
		M[] m = {(),("小旺财"),("大旺财",0),("王旺财",5,'女')};		
		           ^

为什么会出现错误呢?

我们知道直接创建多个字符串是可以直接使用:

String [] s={"gdfs","gsdfh","hh","jyt"};


或者:

String [] s=new String []{"gdfs","gsdfh","hh","jyt"};


而这两者在创建类对象时都不能用了。

通过查询资料,我发现字符串的存储都是先在常量池中创建字符串对象,然后再在堆内存中创建对象。具体参照文章点击打开链接

但创建类对象时并不涉及常量池,而是直接使用new调用构造函数在堆内存中开辟内存空间进行存储的,所以每次创建新对象都需要使用new,对象数组依然。故,创建数组对象可以使用下面语句:

M[] m = {new M(),new M("小旺财"),new M("大旺财",0),new M("王旺财",5,'女')}

也可以使用:

M[] n = new M [5];
n[0]=new M();
n[1]=new M("大旺财");

分别对对象初始化。




  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值