java定义引用数据类型数组

例如我定义一个数组面板JPanelpanel[]=newJPanel[5],为什么还要加上for(inti=0;i<panel.length;i++)panel=newJ... 例如我定义一个数组面板JPanel panel[]=new JPanel[5],为什么还要加上for(int i=0;i<panel.length;i++)panel=new JPanel();呢?
上面大错了for(int i=0;i<panel.length;i++)panel[i]=new JPanel();
展开
 我来答
erliang20088
推荐于2017-11-26 · TA获得超过2496个赞
知道小有建树答主
回答量:926
采纳率:100%
帮助的人:952万
展开全部
1、这是个非常好的初学者的问题。
2、JPanel panel[]=new JPanel[5],代表的是申请了5个位置,这五个位置上你可以放JPanel对象,但你不放的话,它就是5个空位置,相当于null值,即什么都没有,只是个位置,就像停车场。你停不停车,都是有停车位在哪里有着。
3、for(int i=0;i<panel.length;i++)panel=new JPanel();代表的是你真正往这车位中放入车辆了。

不知明白否。
更多追问追答
追问
JPanel panel[]=new JPanel[5],这句话是不是在内存new出了五个JPanel对象的空间?
追答
1、当然不是
2、它只是申请了五个可以指向JPanel的引用而已,因为引用本身也是有类型的,也就是申请了五个引用的空间,引用空间你可以认为是一个32或64位的二进制串,并非真的是5个JPanel对象。
再进一步讲的话就比较深入了,到这个深度对你是比较恰当的,再考虑一下吧。
来自浮山舞尽霓裳的铁树
2014-03-10 · TA获得超过212个赞
知道小有建树答主
回答量:239
采纳率:0%
帮助的人:121万
展开全部
不知道你知不知道 new JPanel(); 这个过程 就是实例化一个对象的过程,最明显的特征,就是会调用构造函数。

而这句 JPanel panel[]=new JPanel[5], 你可以重写一下构造函数,加个输出什么东西的语句。这句执行完了之后,是不会打印任何东西的,也就是没有任何一个实例化的过程
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式