正在加载图片...
Chapter 11: Collections of Objects "b[2]=nu11 b[4]=nu11 d. length 3 h=3 "f length =5 f[1]=0 f[2]= "f[3]=0 th h length =3 数组a是一个尚未初始化的局部变量,在你将其正确地初始化之前,编译 器禁止你对这个 reference作任何事情。数组b是一个已经进行了初始 化的数组,它被连到了一个“ Weeble对象的 reference”的数组,只 是这个数组里面还没有真正放上 Weeble对象。但是由于b指向的是 个合法的对象,所以你已经可以査询其容量大小了。这就带来一个小问 题:你没法知道数组里面究竟放了多少元素,因为 length只是告诉你数 组能放多少元素,也就是说是数组对象的容量,而不是它真正已经持有的 元素的数量。但是,创建数组对象的时候,它所持有的 reference都会 被自动地初始化为nu,所以你可以通过检查数组的某个“槽位”是否 为nu,来判断它是否持有对象。以此类推, primitive的数组,会自动 将数字初始化为零,字符初始化为(char)0, boolean初始化为 数组c演示了数组对象的创建,随后它直接用 Weeble对象对数组各个 “槽位”进行赋值。数组d就是所谓“总体初始化( aggregate initialization)”的语法,它只用一条语句,就创建了数组对象(隐含地使 用了new,就像对数组c),并且用 Weeble对象进行了初始化 下一个数组的初始化可以被理解为“动态的总体初始化( dynamic aggregate initialization)”。d所使用的“总体初始化”语句,只能在 定义d的时候用。但是用这种语法,你就可以在任何地方创建和初始化数 组对象。比方说,假设hde()是一个使用 Weeble对象的数组做参数 的方法。那么,你可以这样调用: 第4页共106页 www.wgqqh.com/shhgs/tij.html emailshhgsasohu.comChapter 11: Collections of Objects 第 4 页 共 106 页 www.wgqqh.com/shhgs/tij.html email:shhgs@sohu.com "b[2]=null", "b[3]=null", "b[4]=null", "c.length = 4", "d.length = 3", "a.length = 3", "f.length = 5", "f[0]=0", "f[1]=0", "f[2]=0", "f[3]=0", "f[4]=0", "g.length = 4", "h.length = 3", "e.length = 3", "e.length = 2" }); } } ///:~ 数组 a 是一个尚未初始化的局部变量,在你将其正确地初始化之前,编译 器禁止你对这个 reference 作任何事情。数组 b 是一个已经进行了初始 化的数组,它被连到了一个“Weeble 对象的 reference”的数组,只 是这个数组里面还没有真正放上 Weeble 对象。但是由于 b 指向的是一 个合法的对象,所以你已经可以查询其容量大小了。这就带来一个小问 题:你没法知道数组里面究竟放了多少元素,因为 length 只是告诉你数 组能放多少元素,也就是说是数组对象的容量,而不是它真正已经持有的 元素的数量。但是,创建数组对象的时候,它所持有的 reference 都会 被自动地初始化为 null,所以你可以通过检查数组的某个“槽位”是否 为 null,来判断它是否持有对象。以此类推,primitive 的数组,会自动 将数字初始化为零,字符初始化为(char)0,boolean 初始化为 false。 数组 c 演示了数组对象的创建,随后它直接用 Weeble 对象对数组各个 “槽位”进行赋值。数组 d 就是所谓“总体初始化(aggregate initialization)”的语法,它只用一条语句,就创建了数组对象(隐含地使 用了 new,就像对数组 c),并且用 Weeble 对象进行了初始化。 下一个数组的初始化可以被理解为“动态的总体初始化(dynamic aggregate initialization)”。d 所使用的“总体初始化”语句,只能在 定义 d 的时候用。但是用这种语法,你就可以在任何地方创建和初始化数 组对象。比方说,假设 hide( )是一个使用 Weeble 对象的数组做参数 的方法。那么,你可以这样调用: hide(d);
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有