正在加载图片...
System. out. println("3: nl.i: #+ nl.i+ n2.i:"+n2.i); String[] t "2:n1.i:47,n2.i:47 3:n1.i:27,n2.i:27 首先,提请大家注意一下新加的这一彳 import com. bruceeckel. simpletest *i 它引入了专门用于测试本书代码的“ simpletext”类库,我们会到第 15章再详细讲解这个类库。在 Assignment类的开始部分,有这么 static Test monitor new Test(i 它会创建一个名为 monitor的的Test类的实例,而Test又是 simpletext的一个类。在main()的最后,你还会看到 monitor. expect (new string[] i 1:n1.i:9,n2.i:47", 2:n1.i:47,n2 "3:n1.i:27,n2.i:27 }) 这是用 String数组表示的,程序的预期输出。程序运行的时候,不但会 把输出打印岀来,而且会拿它同数组作比较,以检验是不是正确。于是你 会发现,如果程序用到了 simpletext,那它肯定会调用显示程序输出的 expect()。这样你就能从源代码里看到正确的输出了 Number类很简单。main()创建了两个 Number类的实例(n1和 n2)。它们的i被分别赋上了不同的值,然后把n2赋给n1,再修改 n1。在很多别的编程语言里,你可以设想n1和n2自始至终都是两个 独立的对象。但在Java里面,由于是对 reference进行赋值,因此从 expect()语句可以看出,对n1的修改会影响到n2!这是因为,n1 和n2都是 reference,而这两个 reference又指向同一个对象。(原先 那个在n1里面的 reference,指向的是保存9这个值的对象。在赋值过 第4页共48页shhgs@wgqqh.com ￾ 4 ✁ ✂ 48 ✁ System.out.println("3: n1.i: " + n1.i + ", n2.i: " + n2.i); monitor.expect(new String[] { "1: n1.i: 9, n2.i: 47", "2: n1.i: 47, n2.i: 47", "3: n1.i: 27, n2.i: 27" }); } } ///:~ ~/ œÂ¹3Kä( 30 import com.bruceeckel.simpletest.*; Ažt,Ÿ ˆ)¡¢ £€(ÍsimpletestÏe¤ Wºg 15 ûÁ¥¦©£ ×e¤F Assignmen t e( m Z3 0 static Test monitor = new Test(); Aº§¨3×љ mon itor (( Test e(ñ] à Test ü simpletest (3×eF main ( ) (b ¡º<g0 monitor.expect(new String[] { "1: n1.i: 9, n2.i: 47", "2: n1.i: 47, n2.i: 47", "3: n1.i: 27, n2.i: 27" }); ˆ Strin g "zh›( â(?@©!â(M Xº P©!]ª!Q ຫA‡"z18 E¬­Xx)¡ ºìí ÄÅâˆg, simpletest YA®OºNˆ›â©!( expect( ) ¦¡;¯£€Ë<gx(©!, N umber eŠ)tmain ( )§¨,e× N umber e(ñ] (n 1  n 2 )AW( i T°~J,X‡(L |P n 2 ~¬ n 1 Áïð n 1FŠV°(áâƒË ¡ÝE?| n 1  n 2 ý±:Æe× ²³(¥_F Java ˶ `)¥ referen ce (~L æò expect( )ƒŒÝE<! ¥ n 1 (ï𺟠g n 2 ´ æ™ n 1  n 2 Æ referen ce à e× referen ce üyŽ‡3×¥_(å/ Y×F n 1 ˶( referen ce yŽ(µŠ 9 ×L(¥_F~L^
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有