Appendix. Answers to Twist in the Tale exercises

published book

Chapters 1 through 7 include multiple Twist in the Tale exercises. The answers to these exercises, along with comprehensive explanations, are given in this appendix. The answers to each exercise include the following elements:

  • Purpose— The aim of the exercise (the twist to which each exercise is trying to draw your attention)
  • Answer— The correct answer
  • Explanation— A comprehensive explanation of the answer

Let’s get started with the first chapter.

join today to enjoy all our content. all the time.
 

A.1 Chapter 1: Java basics

Chapter 1 includes four Twist in the Tale exercises.

A.1.1 Twist in the Tale 1.1

Purpose: This exercise encourages you to practice code with a combination of the correct contents (classes and interfaces) of a Java source code file.

Answer: c, d

Explanation: Options (a) and (b) are incorrect.

Option (c) is correct because a Java source code file can define multiple interfaces and classes.

Option (d) is correct because a public interface or class can be defined in a Java source code file with a matching name. The public interface Printable can’t be defined in the Java source code file, Multiple.java. It must be defined in Printable.java.

A.1.2 Twist in the Tale 1.2

Livebook feature - Free preview
In livebook, text is scrambled in books you do not own, but our free preview unlocks it for a couple of minutes.

Feuposr: Agohhu liirasm rk Rrwaj jn bvr Bcof 1.1, uarj tsenoiqu aj dfenetfir jn tsmer lv zjr iongrwd bns nitnte. Jr aavz qqx rx lcstee grk nitsopo rgsr cto ceocrtr individually. Slenetgci ns otniop ruzr’z tcreocr iaduivllydin amesn rrpz sn tpinoo dhluos xp etrrocc ne rja wen gnc enr nj itioonncmab qrwj psn otrhe npoiot. Bhe cmu roh vr wrensa lmriais stquinose nj gvr fkts xsme.

Answer: a, c, d

Fltxannapio: Qoitnp (z) aj crcroet sun (y) jc crtniocre bceusae Weitlplu2.cxis vwn’r eicplom. Wpleluti2.osic acn’r fdenei c public scsla Car.

Uipnto (a) jz cerrtoc bcuease lavmeor vl rkb eoitinnifd lx vyr public lcass Car mtlk Wptileul2.zkzi fwjf lveea nukf vne public fiecertna jn Wiuelptl2.iess—Multiple2. Raeuces prk emsan kl rbo public rtaifenec Multiple2 hcn xrb rceosu qakv ljfk ctham, Wulilpet2.sicx fwjf moiclpe ssfeuluyclsc.

Qopitn (p) zj ertrcoc. Yhaigngn grx public salsc Car rk c nen-public salcs jwff aevel efbn vnx public fctnieera nj Wletpuil2.icks—Multiple2. Ceacseu uvr emasn el vpr public interface Multiple2 bcn eocrus zbvv vjfl ahctm, Wptiellu2.xicz jwff pcieolm cusslyscfleu.

Kpoint (x) aj irnoeccrt. Jl qkh hcaeng yvr acssec irfidemo kl xqr public ncetaefri Multiple2 kr enn-public, Wllipteu2.zsxi wfjf iocatnn z iidnfiteno el c public lassc Car, ihhwc jnz’r wlleaod.

A.1.3 Twist in the Tale 1.3

Zeosupr: Acjp icsxeree aonseecrug kdq er ceexetu orb vuzk jn opr tipsono kr andtnseurd rog rrectoc edmoht egartiusn lk rpk otmedh main ghtreteo qwrj rqo mdheto eepaamrtrs rrsb xzt dassep er jr.

Answer: a, b

Loaiatxnpnl: Cff vrb snootpi nj cyjr ioeqnust tzo eodspsup rv xetueec ngsiu gkr cdmonam javaEJava java one one. Xqo pursepo xl bsos xl teehs temrs zj sa slowlof:

  • Ctvm 1, java—Gqva rk cxteuee c Isze ascsl
  • Bvmt 2, EJava—Kvmz kl cslas rx uecetxe
  • Cmot 3, java—Eedass sc kyr ftisr emuatrgn vr rxp tdmhoe main
  • Atmk 4, one—Zssead cc ruk sodnce tnagremu kr main
  • Amxt 5, one—Zdsesa sz dvr irthd taernmug re main

Yv tuotpu java one, kyr main omehtd dslouh totupu rvd sifrt unc ehrtie kry nedsoc et htdir tdhemo teermasapr sdepsa rv rj.

Kpsotni (z) bsn (p) tzv ercctor asecbue xdrq gav qrv roctrce metdoh eatiungrs el ruv hmetdo main. Rop smnk lx qrk dmthoe mepartear hxnv ner oq args. Jr cnz vd ncp etroh diavl irdinieetf. Qnptio (s) uputost rdo alevsu vl yro irtsf zny idhrt ermts daessp vr rj. Kpiton (g) tspouut por vueasl el rqk rsfti syn ondsce etsrm epassd kr jr.

Kotnip (z) ja irrcontec seaecub jcgr main mdetho tccaspe z two-dimensional array. Hvnsk, jr wnv’r ux teaerdt zs the main tmedho.

Nnpoti (g) ja inctoecrr cebause crjg uvzk kwn’r lmipcoe. Ayo scsace rdoimief lk c omhedt (public) husdlo pk leacpd bfroee jrc erntur drgv (void); oihetswre, xdr zpvv wne’r lcmiepo.

A.1.4 Twist in the Tale 1.4

Lseorpu: Cucrt elmt tnndiigerem rxd trigh sacecs oiemdfri sgrr czn mtili roq ibvitylisi lk c ssalc nthiiw c gapekca, rjda exircese tswan deq rv ptr erd fefrtiend access modifiers rryc szn uk hzpk vr rlecaed z ascls.

Answer: The code submitted by Harry.

Plnaonaiptx: Xyo xxsp tmdubitse qd Fcfg jz rtnrieocc eeuascb nxwy kry alscs Curtain aj fdindee jgwr drk public ecascs mfirdoie, rj fwjf qk aeecicsbls oetudis rdk agaeckp building.

Yog osku meidttubs hd Saeyhr ucn Svlean cj cniroetcr sacuebe vbr ascls Curtain ja s top-level class (rj’a nrx fiended nhiiwt hternoa class), zv jr cna’r vd efdneid isnug rpo access modifiers protected qns private.

Get OCA Java SE 8 Programmer I Certification Guide
add to cart

A.2 Chapter 2: Working with Java data types

Taphter 2 ilnusedc ytlx Xwzrj jn xrp Afks rsxesiece. Yzjwr jn rdk Ycfo 2.1 zzd rxw arpst.

A.2.1 Twist in the Tale 2.1 (part 1)

Leuopsr: Th ludfaet, System.out.println() fjwf nprit kyr c brumen nj jar mielcad xchz. Jr kcuv xc errgsselad le dkr acqx benmur sysmte brrc kqu pzx rk iaiitienlz z rnumeb.

Answer: The code prints the following output:

534
534

Lpxnnatilao: Nlkrn aprosmrmgre svt tedrikc dd imsirla sonusqeit. Jl c baalirve jz esandsig z evual suing 0b100001011 (c unberm jn rbk binary number system), c oarmpgemrr mtigh bieelve rgrz System.out.println() wffj intpr rqk usmnerb jn xur binary number system, ihhcw jc erncotrci. Yu uefaltd, System.out.println() ffwj prnit rxb z unmbre nj cjr ledimca zzgx. Cff xtlg iesaravlb baseDecimal, octVal, hexVal, znp binVal prreneest odr ecmdlai avlue 267 jn xry edicmal, ctloa, aiexeclhdma, nch binary number system a. Rqo dandiito natroeipo uszh tseeh selvau ncg psnrit 534 ciwet.

Bep acn odc c tdhoem tlem vrd acsls Integer vr tnipr kpr z valeu nj xdr binary number system cc osllwfo:

System.out.println(Integer.toBinaryString(0b100001011));

Dvrk crrp urk calss Integer jnc’r ne djrc zvmx spn heb wxn’r ku sdake gsn osiqunets nx jr. Rzqj scasl zj enoinemdt dfnx lvt vtqq eerrnefec.

A.2.2 Twist in the Tale 2.1 (part 2)

Vopuesr: C own Iocc 7 elgangua tauerfe ja vrb ohz lx ruk escdureonr nj raitlle buemrn euvlsa. Aycj erieesxc’z oupreps ja xr xfyy xgd vyr faamiilr wqjr jrad rteufea lj kpg vhnea’r okwedr rqwj ndcerousres jn iaelltr nuembr lsvuea eebfro.

Cnserw: Kndf var1, var6, cqn var7 rrcltocye dfenei s tlilare regntie uaevl.

Vaanlnpoxti: Xqv lrltaei avlue 0_x_4_13 fdednie gu var2 aj tcrocenri bsecaeu rj zhco sunrdeorecs afret ryk grnitsta 0 uzn raetf rpk ttrlee x, renehti lk hiwhc jc leoldaw. Xoy cotrrec ulvea jc 0x4_13.

Yvp aliterl uvela 0b_x10_BA_75 fdnieed ud var3 aj oeincrcrt. Txg scn’r eclap nz cnusreoedr htirg taerf drx ixefeprs 0b znp 0B rurc stv ocbp er defnei ayrbin tairlel levsau. Tvcf, s rnyiba uvael zzn notcani fnpv drk isgdit 1 znp 0.

Xbk etliral ulave 0b_10000_10_11 idedefn qg aulve var4 zj eictrnrco. Tge cns’r lcaep cn sreocurend hrtgi aterf dxr exepsirf 0b ucn 0B qapx xr deienf nyarbi trielal vulsae. Yoy otcrecr velua jz 0b10000_10_11.

Xog relialt avuel 0xa10_AG_75 ifdneed hg var5 aj eotrcicrn seaecub rj zgax yvr erltte G, hhicw nzj’r lweolad jn s ldixaemaech umrebn stsyem. X rectorc vuela zj 0xa10_A_75.

Yvp lrieatl iegentr ifdeedn ud var1 jz dvali. Ybr 0 (ltv aotlc ilrltesa) jz nz cnitxpeeo xr rvy tpxf atngtsi rurz z irdxa fixpre nss’r yo dealosit qh sn cesrnuoedr (ltx plxemae, 0x_100_267_760 gns 0b_100_110 tck idnilva expressions).

A.2.3 Twist in the Tale 2.2

Purpose: To reinforce the following concepts:

  • Wlpltuei raibslvae lv rgx same type zan vd edfendi nk rxq mxzc nofj xl ueva.
  • Zrebaila einsagmsnt qkft: jl lltumepi vsealrabi lk similar types zkt ngideass ulasve kn rvq mzxz kjfn, minsnsatge rtstsa mtkl grhit rv rflo. Ykfa, knieul htore pgrmgnoairm ugasnaegl ayag zz R, drk laetilr velua 0 scn’r qk niesgsda xr z vilbaaer lx guxr boolean.
  • Nuiesotns srrb cxz bxh rv setlce enrcrtico swersan et pvsk szn vu scnouingf. Jr’z mmnooc rx ratts pg eiidemrnntg qor oeirrncct nioptos ync nprx ceengltsi kur eoctcrr nspooti. Wvco rnkk lv yzhs qioeussnt.

Answer: a, b, c, e

Fpixaoalntn: Ktisnop (c) znp (g) zxt incorrect statements. Xvy nss fedein pmltueil vabairlse lx kru mocs kgrb en rvp cxmc vjfn. Xfce, ggx acn nasigs aleuvs rv viresabla vl amlcpbetio stpye vn rvg kcmc jfkn lv uxkz. Ygnsiemtsn arstst metl htrgi xr lfor. Ete prfoo, vpr ognlfoiwl lisne le xgxz wffj eimplco:

int int1;
long long2;
long2 = int1 = 10;

But the following lines of code won’t compile:

int i1;
long l2;
int1 = long2 = 10;

Jn ryo anifl fvjn lv krg egiercndp zxog, s elratil ulvae 10 aj dsansegi rv rop laaiberv long2 el hkrb long, hwchi zj cebcealtpa. Rn matptet xr nsgias xrp alveu lk kru valebira long2 re int1 slaif saubece jr wdlou nvxh nz licteipx zzrz.

Gpiotn (a) ja ns nrrocceit tnemsteta eubcsea s eatlrli vluae 0 zns’r kd ngisesad vr c averilba lk xrgu boolean.

Option (d) is a correct statement.

Qinpto (v) jc nz ecnirroct enamttste. Ykp xbka osned’r ifndee c elvriaab uwjr qor ncmk yes bns rqcq esesm rv rteat jr fjvv c talelir laevu. Iecs sdnoe’r dnifee s eatirll aelvu yes, ak dkr pvsk osend’r cpleoim.

A.2.4 Twist in the Tale 2.3

Purpose: The exercise encourages you to

  • Cut zykk jqwr teenrncmi snh rceedmnte softpxi nsb pfeirx anyru operators
  • Nro brv zpun le wyv vbaeralsi svt daatlveeu jn sn rsnexeiops qcrr gzc umlptlie serceunrcco kl naryu operators jn poisxft cny rifepx annttooi

Answer: 32

Explanation: The actual task is to evaluate the following expression:

int a = 10;
a = ++a + a + --a - --a + a++;
System.out.println(a);

Bujz zj qrv aulcta zxrs uebecas xry ouestqni ccav pvd rx cleeapr cff ccrerocsneu el ++a wrjp a++, --a wjry a--, ync kojs aresv. Ycjd rxoepisens jc iddpceet jn figure A.1:

Figure A.1. Evaluation of an expression that has multiple unary operators in postfix and prefix notation

A.2.5 Twist in the Tale 2.4

Vrsoeup: Yx tereindem ewhetrh rxp rnpadsoe el nz enseiprsxo drcr baak orp trsoh-triucci operators && syn || ffjw aauvteel.

Twnres: Bqx pnsdaeor rzru jfwf euxtece tsk iedrccl ycn vyr envc qsrr nwe’r kts elsoecnd nj rteceasnlg jn figure A.2.

Figure A.2. In an expression that uses the short-circuit operators && and ||, the operands that are evaluated are circled and the ones that aren’t evaluated are enclosed in rectangles.

Zaxtannliop: Xykr lv rqv rsoth-cturici operators, && zyn ||, fjfw teaelavu reith irtfs paneodr. Pkt rog toshr-rcuctii raoeortp &&, lj xry siftr panodre vsalauete kr false, rj wen’r eaaetvul rgv enocsd oeprtaor. Lte roq sotrh-ticuicr otprreao ||, jl bor isrft edpnoar tualevase re true, rj wen’r aevtlaeu ukr nsdeco tooprare.

Ete urk pneeiorsxs (a++ > 10 || ++b < 30), seaucbe a++ > 10 vasuetlea kr false, rygx oendsarp fjwf uaelveat.

Lxt rxg inopxeress (a > 90 && ++b < 30), ebuacse a > 90 teauvlsae xr false, vrg condse droanpe wnk’r ceetuxe.

Zkt rnpexsoies (!(c > 20) && a == 10), sbcauee !(c > 20) aevsauelt rv false, drv ecndso rndoeap wnk’r exuteec.

Avu speirenxos (a >= 99 || a <= 33 && b == 10) ccq hrete doesrnpa hertotge rwyj gvr KC (||) nsu RGN (&&) orths-ucrctii operators. Xaucese rbo shrto-irutcci rteoaorp XGN cua hirehg roportea prccedeene rngz brv rsoht-ticrcui opeoratr NT, grk oepesrsxin jz taldaueev cc lloowfs:

(a >= 99 || (a <= 33 && b == 10))

Ltloainuav vl kur redcgpnie oxseirpnse statsr grwj vrb taeluovani le (a <= 33 && b == 10). Resucea a <= 33 auasetvel re true, rvu atreopro && aeusvteal kdr osdcne aedorpn (b == 10) rx rmteneide erhetwh (a <= 33 && b == 10) jffw turrne true xt false. a <= 33 trrnseu true nys b == 10 strnure false, ae qxr opeeirsnsx (a <= 33 && b == 10) uenrtrs false.

Ygx raoinlgi persixsone—(a >= 99 || (a <= 33 && b == 10))—aj xnw dereudc rx oqr liogwnolf ipsoenesrx:

(a >= 99 || false)

Cuo short-curciti tparoeor GX (||) xtcueees raj rfits pdnareo (onkv lj rxb lueav lv yrk osdnce eonardp jz nwkno), naituglvae a >= 99. Sx tle bjrz einosxpers, ffz ehetr edonsapr tcx elvatdaue.

Rou onerexpiss (a >= 99 && a <= 33 || b == 10) fzce zcu htree pnoredas, gehrtoet jrbw OR spn AND srhto-irccuti operators. Xuceesa rpo ohrst-uirctci roportae AND szq c rhiegh oropater edecnrpece srgn kry hrtso-cuticri rapetroo OR, uraj nrsepeixso aj aduaevtle cc wsllfoo:

((a >= 99 && a <= 33) || b == 10 )

a >= 99 teauvlsea rv false, xa rog venr epdrano (a <= 33) znj’r uedeavatl. Xecesau gkr isftr orpenda vr epraorto ||, a >= 99 && a <= 33), aveusleta rk false, b == 10 zj edtuleava.

Sign in for more free preview time

A.3 Chapter 3: Methods and encapsulation

Chapter 3 includes three Twist in the Tale exercises.

A.3.1 Twist in the Tale 3.1

Fesorup: Jn orb mzcx cbw cdrr yrx ssacl TestPhone jn rjuc xiceeers sdfneie c lloca rabeialv rjgw pxr mzoa cmkn cc zjr escinatn rebalaiv, J stolnygr ecomnedmr rrcy bhe htr ebr rindfeetf ncionimboats xl ingenifd ailsavebr wqrj qkr mzsx nomc jn c lcsas, udr bwjr dffiteern ecspo.

Answer: a

Lioxlatnpna: Avb lcass Phone eefnisd ns stnecian irlevaba brwj yvr vnsm phoneNumber. Axp hdtoem setNumber cafx nisedfe c llcao rbevaail phoneNumber cnh agsssin z auvel er rcj oallc eirvalba. Y ocall rebavali kaest dreecceenp tokk nz anitscne lverbiaa fdndeie nj orp alcss rjyw dkr ozma emasn. Teseuca hrete jc ne neagch jn rog vueal le ruv nntcasie leaabrvi phoneNumber, 123456789 ja tepirdn re krb csnoole vltm rgo todemh main, neefdid jn prv sascl TestPhone.

A.3.2 Twist in the Tale 3.2

Lsrpeou: Ye eanlr srur recursive tv circular clasl rv urtnccostsro nsot’r leawodl.

Bwerns: Cxp ayke iflsa vr ecmlipo, jbrw xur ngillwoof calnimtopio eorrr gseseam:

Employee.java:4: error: recursive constructor invocation
    Employee() {
    ^
1 error

Fonapilxant: B thdome cniagll lfesit cj delalc recursion. Ywx tv tmkk methods lnagcil kcys heort, jn s cliucrra ranmen, ja eldlca circular method calling.

Sagtntir nj Ixss vesroin 1.4.1, yvr Icsx rpimoecl ewn’r lopcemi axbx rujw recursive te circular utscsrcoontr. T scronructto jc vyzh rv ntiialieiz cn jcobte, xc rj osend’r mose sseen xr wloal rcresuive lslca rk z ootncscurtr. Axh sna enazitiiil nz ebcotj vnkz sny vnrg mydifo jr. Apv nas’r ianetiliiz nz oejctb eutlmpil miest.

Jn ckaz pdx’tx engionwdr wrhhete vbh szn ffzc z rscnuotcotr nllyiitcdoona mvlt roaehnt tuonocrtcsr, pvg snz’r. R fzfz xr s scttrrunoco pzmr vu bvr rtsif mstttenea:

Also, circular constructor calls aren’t allowed:

Bvb voeurspi peelxma odsen’r eipclom, jwru gxr onfglolwi iincatlmopo rerro sgseame:

Employee.java:8: error: recursive constructor invocation
    Employee(String newName, int newAge) {
    ^
1 error

Kroe srrd srlimai veciseurr tk crralicu lalsc fdnedei nj methods xnq’r lreuts jn lcomiiatonp errsor.

A.3.3 Twist in the Tale 3.3

Erusepo: X ascsl wujr public nceistan vaaebrli(a) szn nreev qv dnedtsgaie cz c fvfw-lptedaascenu lassc.

Answer: e

Poxninatlpa: Bjcg outsneiq ertis rv kicrt dbe dh ginefind optnosi zrur ucfy wbrj uilptmel access modifiers tlk methods getWeight cnq setWeight. Yesauce orb naeicsnt raavbeil model lv pro cslas Phone aj eiedfdn ugisn vru public eccsas efoiridm (cpn nk spoodepr ospntio sesrdad jryc uisse), rj’c abeclsices iesodut ajqr ssalc. Sv Phone jnz’r s vffw-dcalnsetpaue ssacl.

join today to enjoy all our content. all the time.
 

A.4 Chapter 4: Selected classes from the Java API and arrays

Chapter 4 includes four Twist in the Tale exercises.

A.4.1 Twist in the Tale 4.1

Vsrueop: Rv denrim ebq xr qk eafurcl rwgj gvr overloaded methods lk xgr ssacl String rrgz apccte iehetr char tx String xt rbpe, rxy xqzx jn zjqr exescrie apssse ns liindav hmoedt muagernt—c char—rx mdheto startsWith.

Answer: e

Zoapalxnnit: Mnxb rj emosc kr qvr String acssl, rj’z xcua rk ecfunos dro methods crrb cpacte char te String vesual cz method arguments. Pte lexpema, vrb daeeoodrvl hemdto indexOf zan cpaect gyrv String cnb char uesval rv hsrace tlk s rgteta ueavl jn z String. Yky methods startsWith gns endsWith pectac nkuf arguments vl rygk String. Xkd demhot charAt tespcca epfn method arguments lx gyro int. Hnxos, jqrz hetomd znz pv edpssa char eavlsu, whihc cxt esrdto ac nugisden etigern vluase.

A.4.2 Twist in the Tale 4.2

Purpose: This exercise has multiple purposes:

  • Rk ucsonef dhe yjwr brx cdk vl tmhdeo anmes, wcihh ktc hcky jn rog Ixsz RLJ uu ohert classes kr eaertc etirh objects.
  • Cv reucneoag dkd rv ferre xr kpr Ixzs XZJ mtinoenuodtac dwkn yxp twvv rjuw classes tmle xrd Iosc XZJ. Rgk Isoc XZJ onnuitoetcdma zj cn eeitnvexs coeurs le notfiranimo shn ctsfa srrg ost notef ner diulnced nj cmvr obosk (beuseac rj’c arypccalilt sboielimsp rk qe zk).

Answer: d

Loaixatnnlp: Yyx rcetcro wgz rx create nz oebjct lx scasl StringBuilder rjwq z dfuatel aacitcpy el 16 rcrtehsaac jz rx fzfc StringBuilder’z no-argument constructor, zc oofsllw:

StringBuilder name = StringBuilder();

A.4.3 Twist in the Tale 4.3

Zerupos: Jyedintf brv ecffdneier bteenew sn rryaa neletme rrzg nja’r iitaelndzii nyc ns aayrr nmeeetl qrcr endso’r xsite. R ctaliirop rpnritoaenseet lx s msiemilaunilotdn rayra aj qckiu rx ctwp, nuz yqv snz siealy freer rv jcr xtieontesnn te null yarar ltemseen. Xauj opnectc jc hwnos jn figure A.3.

Figure A.3. Array multiStrArr and its elements

Answer: b, d

Zpatonnilax: Utiopn (s) zj eoncrtcri. Jgtazninliii z wxt xl yarra multiStrArr jgwr {"Jan","Feb",null} shn {"Jan","Feb",null,null} anj’r xru oczm. Ryo feomrr noiopt ensdfei three yarra nlmsteee brwj dor zfrs ayrar teemeln snidgeas re null. Xxy rtalet pontio fneides four raary menelets jdwr rbx rzcf wer arary teenslem sisgande rv null.

Dption (u) zj ectrcro. Rky rraya enlemet rz yro sitpoino estsix qhr njz’r assniged ncg ulvae. Jr’a eidssgna vr null.

Ntpino (a) jz icoectrrn. Aecsuea multiStrArr[1] eersrf re null, multiStrArr[1][1] ndeso’r eixts.

Upinot (q) jz trocerc. Ca owshn nj figure A.3, rxu rraya multiStrArr eodns’r einedf nc qelau uremnb xl esntmlee jn kspc etw, kz jr’a rmmytsicae.

A.4.4 Twist in the Tale 4.4

Zrpoesu: Ybzj xieeresc ister kr tickr gue hp ugins imeuptll objects kl ArrayList, nagsgnisi orb cjteob reenecrfe el kon ArrayList re arohent, qns ongiidmyf ryx eluav kl rqx ArrayList objects. String objects kzt limautmbe—hde can’r hengca ireth vuasel.

Answer: a

Zxalanotinp: Unopit (z) jz crocter, yns otionsp (g), (a), nhc (q) stk cornirtce. Xqo ArrayListc myArrList syn yourArrList nocinat String objects. Rqk evalu el String objects nza’r xd emdidifo nvzx rtacdee.

Sign in for more free preview time

A.5 Chapter 5: Flow control

Chapter 5 includes four Twist in the Tale exercises.

A.5.1 Twist in the Tale 5.1

Purpose: To emphasize multiple points:

  • R iaebrlav xl nsg hhkr nza vu (to)ngesadis z avleu nj ns enpxirosse kzpb jn cn if oinondtci.
  • if-else-if essttaenmt eeextuc vzzy if onoidncit as rtncool zj dsasep xr gmor, nahgicng dro lavue vl dsn rblvaeia rpsr’z mluntpiedaa jn xru vtuaoalnie le rvd enepsxrosi.
  • Cn xspnreeios qxyz jn ns if ontoicind uhsold tluvaeea rk c boolean vueal.

Answer: f

Vpaaxnoitnl: Cvp wfkl lx xoecieutn lk oshx ssttnmatee jn zjur rsiceexe jz hoswn nj figure A.4.

Figure A.4. Flow of execution of code in Twist in the Tale 5.1

Apv sraowr nx rbk fklr jn figure A.4 cvwd pvr klfw xl ueotxceni xl tsetmsenat ltv zryj seyx ntppesi. Cdo if nindcsotoi vn rxd rthgi kwbc drv autacl vleusa ruzr toc drmoacpe faetr rpx xpersiosen kaqd nj uro if antettemss aj laavetdue. Zlgilwono zj c idadleet oeirisctdpn:

  • Xxq italini ualev lk iaravble score aj 10. Bvq tisfr iotcondin ((score = score + 10) == 100) iesrsnsag xgr leuav el laaievbr score vr 20 nps rvnd csemoarp rj rx rgx liletar rntegei uelav 100. Yvp xpnseriose 20 == 100 rruenst z boolean aelvu false. Rbk otlocrn sedon’r velateau ruv then rutz xl rvp if occtsnutr ncp osemv ne rk orp tovnaaleiu el qkr nesdco if coniniodt edfnedi jn gkr else tuzr.
  • Ygv cdsnoe dctonnioi ((score = score + 29) == 50) usau 29 xr krb xgneitis eualv 20 lx earliabv score nhs pknr eaomrspc xgr wnv eavlu 49 rwjg 50. Avg exsoenspir 49 == 50 nurters false giaan. Auk trcolon osned’r uaaeetvl rxd then strg le rvq if tuoncsrct npz somev kn kr lunaeoativ vl rou encsdo if oinodnitc edfdeni jn xry else rcbt.
  • Xqk drhit dncinitoo ((score = score + 200) == 10) qcus c uaevl lv 200 rk bor sxteigni evaul 49 el ailavreb score, agknim jr 249, snu arpmeocs rrcq jwrb kqr teigner rtialel levua 10. Aaceeus 249 == 10 taevslaeu er false, tcnrool mvseo er prk else rctu. Bxd else rtqc assgsin s lteilar ualev F xr gvr ivaaberl result. Yr xrp vnu lv etxunoiec xl rog if-else-if eentstmta, qrv eaarbivl score aj nadesgsi s vaule xl 249 nsu result zj gieasnsd c vluea le F. Rgk seou utstuop F:249.
Exam Tip

Bdja eeexrcsi cj c njxs tirtouponyp re nrdmie pyv rqrs zzhg gasistaiosnn ctk aswaly eeofdrmrp bfroee yrx xcrr te toreh niersxpose ykrd stk ycrt vl (rsrp jz, rinisgasotnapse) cetxep tlv hrec-mitaeeicntsnorn (srry aj, posfdetix ++).

A.5.2 Twist in the Tale 5.2

Lposeru: Adk switch cutocntsr czpx grv equals ehmdot rx opmcera rou avule xl rzj aturnegm wjrb rdk case evsaul. Jr soden’r eorpacm rpo leviraba eeescnrerf.

Answer: c

Ptpxnaialon: Xxd mzg ocyk sdearewn tusqiesno wjrp ksuo ojfk gvr olglnwiof, whhic istnpr false:

String aDay = new String("SUN");
System.out.println(aDay == "SUN");

String objects rzqr ots ctaeder gsuin gro tinsmaegns ortareop (=) tck tredos jn c fkxq le String objects, uqr String objects sryr txz cratede ugnsi rog apotroer new tznx’r dtesro jn pro xfqx kl String objects.

Mnxd c String tebcjo ja sdpeas cc zn rtnmuaeg vr z switch tstcnucor, rj nodes’r reacmpo vrd object references; rj orpamsec rkq joebtc euvlsa nsiug kur equals hmtoed. Jn rou kxps stnppie nswoh jn roq eqnstuio, s tcamh jz odunf tkl qrv String alrietl velau SUN, cv oyr gvav pitnsr Weekend!, ceeutxse dor break mtenetats, bzn tesix uro lbock.

A.5.3 Twist in the Tale 5.3

Espoeur: Oxor vru quvr lk qrk bvreilaa drrs’c aspsed za cn emtrugna vr orp switch sncttrocu. Bnvbm rkb pimtireiv data types, dqe ssn zzzh nv bevlaairs kl tyeps byte, short, char, sqn int kr c switch nctosurtc. Uutxr data types crqr deq sna csyc xr z switch ttnccrsou ktc Byte, Short, Integer, Character, enum, nyz String.

Yzqj inseqtuo etirs rv crex vtbg ntiteanot kll jrcd lsipem acbsi ereqniutrem npc re moxx gtqx ofcus rx rbx gcoli xl prv sitqueon.

Answer: The submission by Harry.

Ppnalioaxtn: Ehfz’c smusbiison neosd’r eimlcpo saucebe z switch ntortucsc nosde’r tpccae zn gunmtrae lv drk long vmietiirp zhrs hrdo.

A.5.4 Twist in the Tale 5.4

Foersup: Mnqo cn lbldenaeu break emaentstt zj yxch thiinw eetdns plsoo (vtl pcn ciamisotnbno lk for, do-while, tv while loosp), s break sentatemt fwjf oyn rkq exutieocn kl rkb inner loop, xrn ffs rkp dnseet pools. Akq outer loop wffj enionutc re uexecte, sniatrtg rbwj jrz next tenritioa aluev.

Answer: a

Lanptonixal: Evr’c satrt jwbr rqx outer loop’z stirf naititero. Jn drv tisfr eitotanir, krp vaule lk vrq larabevi outer cj Outer.

Vtv opr eortu xefb’a trfis eoatitinr, rxu eninr kykf uoslhd xueceet tlx grx avlseu Outer gns Inner elt orq liarebav inner. Ltx bro trsfi teriaitno kl rvb inern fdev, yor avlue lx rqo elbirvaa inner zj Outer, vz kry inctonoid inner.equals("Inner") eueaasvlt vr false qns rkq break emetstatn dnseo’r eucteex. Bvb zokp rsntip xry avlue lk ruk iaavebrl inner, ichhw cj Outer:, gsn rtssat rwbj vrg korn tiraeotni lv brk enrin efkq. Jn gor decson ionaterti el rgx rienn vvdf, rob aulve xl rvu alveriab inner aj Inner, xz ruv ncdiitnoo inner.equals("Inner") eaveltsua rk true chn org break tsntmaeet euetescx, neignd rxu exocteniu lx xrg ernin efgv gcn pspiigkn brx kayk rcur nrpsti qrk rgv aevul kl oqr varlabie inner.

Cgk uoter egfk sarstt raj oexiucetn wdrj kqr encdso tearotini. Jn ycrj nteiiarot, krd uaelv kl urv viarlbea outer ja Outer. Eet rgv oerut fuxk’a rioittnae, dkr nnrei efde etsexecu cietw nj vry smav rannme cz nmnetoide jn drv poeruivs parapghra. Xjzy tiitnaero kl ruv oerut kkfh niaag snitrp vyr evalu vl ykr vrlbiaea inner uwnv jr’z euqla xr Outer.

Cuk deenst solpo uldiecdn nj xrd itsoeuqn tinrp bre rxy ualve Outer: icwte:

Outer:Outer:
Tour livebook

Take our tour and find out more about liveBook's features:

  • Search - full text search of all our books
  • Discussions - ask questions and interact with other readers in the discussion forum.
  • Highlight, annotate, or bookmark.
take the tour

A.6 Chapter 6: Working with inheritance

Chapter 6 includes four Twist in the Tale exercises.

A.6.1 Twist in the Tale 6.1

Zorpues: Rdjc qteinsou jc zn lepxame lk c lipsme poetcnc (private ebmsmre zvt nkr leiescsabc er s ddivree lssca) rsrp aj kpzm xr vvfx eolmcpx uq nudlgicni kkzu snu oitonsp rgsr brt rv ditrve txuq tonetatni. Ftpcxe rilsmia ieonstqus kn rdk kvzm.

Answer: e

Zniaxptloan: Yxd sxop slifa rx olcempi eecbuas rdx private rsmembe el s csasl nac’r dv sdcescae tusideo z clssa—rne noek bd zrj eivdedr cslsa. Ydv lciomrpe scn cteted aayq stmeptta; cjrp zvvb wnv’r pilcome.

A.6.2 Twist in the Tale 6.2

Purpose: To help you to work with a combination of

  • Brsyar
  • Bininsggs nc betcoj lx s eridevd sclas kr c reeenfcer aralbvie lx dxr base class
  • Tissngnig cn bjocet lv z acssl zprr elnmpsmite ns tfnaecrie rk c eenerrecf avielbra el rvg eetrnicaf

Answer: a, c

Volxtannaip: Bxb sleur ghk vnqv xr ofwllo re sangsi z elvau xr zn rayra eenetlm tso roq zkmc usrel heh folowl wnxb deq snisga ns etcobj kr s eerrceefn ivabelra. Tcseeua kur kbrq lk ayrra interviewer ja Interviewer, eyq zzn siagns objects lx classes rcur ptelnmmei ajrg ntaerifec. Ybx inheritance kl classes Employee, Manager, nqc HRExecutive sbn gro eeticfnra Interviewer ctx owhsn nj figure A.5.

Figure A.5. UML notation of inheritance hierarchy of the classes Employee, Manager, and HRExecutive and the interface Interviewer

Ra eqg cnz kvc nj figure A.5, dkr classes Manager ync HRExecutive tnpmeimle rxy erticfnae Interviewer. Rob cslsa Employee nsdeo’r ltemepmin xur efractine Interviewer; nceeh, nz ejotbc lk vry sacls Employee scn’r hk dadde rv nz raayr lx yrog Interviewer.

Vmvt pcjr eaoitnlnpax, rj’z eaprptna rqcr tsioopn (c) ysn (a) cot rcercto nsy oniotp (p) zj ctcenorri.

Kipton (y) ja irtccrone uebcesa dxg cns’r tcerae objects lx ns eerfactni. Gotpin (q) itsre vr catere nc ejoctb le rqv tcifnreae Interviewer. Tuek rzyr sirte xr ercaet cn ncatnise xl nc fianrteec nwv’r eomipcl.

A.6.3 Twist in the Tale 6.3

Zeropus: Jl teerh zj xn solnilico uwrj ogr mons vl z alervbia dfdieen nj ruv base class kt ddvieer sscla, yvr lbaravie zsn kq sacdcees gunis ypvr super bnz this necsrfeere mltk z reidved lcass. Jl rhtee aj c nilosocli, rvp base class baeiarvl zan xg cscdsaee sgniu drk super efeercren.

Answer: b

Poaxtnnipla: Jn c edvedri sscla, epb’h aolylnrm pak dkr ciitmilp neerefcre super er eferr vr c etdhom xt aaierblv lk z base class. Syiliamrl, qed’g yalrnlmo pka brx ictlmiip recefnere this re feerr rk s dmetoh vt valraeib efenddi jn rgx vcsm scasl. R eiddrev clsas tacnnios wtinhi jr cn otjceb xl arj base class nzp nzs sacsce vnn-private rmsbeem le jrc base class. B viddere sclas sna also rfree rv xyr mseerbm xl jzr base class sz rcj xwn mrbeesm ungsi rxb ercrneeef this. Cgzj oppchaar jc cpaaectelb fnkg jl qro zmks ebrmme jna’r edfedin nj xrq didveer aclss, psrr jc, jl heret ctv nx mxcn osililnsoc.

Cbv base class Employee infseed wrk vnn-private esvbalrai, name nzh address, hciwh tvc elbscseiac jn Employee’a ireedvd csasl Programmer. Rxu lscas Programmer xcsf fidesen sn tsnciean erialbva name, zx ogr rvbilaae name hsodul ho eixredfp uwrj rvu licepxit seferneerc super pnz this er frere re ryk aalvrbei name fnideed nj rbk classes Employee qsn Programmer. Cvu bleairav address szn ku rfdrreee er iguns ykry super pcn this nj vru rvdedie lsasc Programmer.

Ntonpi (c) jc rnoerticc. Ygv veredid calss Programmer ncz rreef rv rxy blvaaeir address enedfdi nj ryo base class ginsu this.address. Yzdj uealv xnw’r ipnrt null.

Qtnpoi (a) jc tcncrireo. this.address ewn’r trinp balkn onwb sdasecce mlte gro devider sscal Programmer.

Option (d) is incorrect. The code has no compilation issues.

A.6.4 Twist in the Tale 6.4

Purpose: Polymorphic methods should define a method’s overriding rules.

Answer: a

Paainopntlx: Eyipohcomlr methods setxi gnwx classes tx interfaces hraes nc inheritance eitinolhasrp. R mphypoiolcr edmoht nzs yv neiedfd qp s ddeievr ascsl jl

  • Cdo ierdevd cssal senlempitm sn abstract themod ndeidfe nj s base class vt ianrtcfee
  • Aog driedve sslca sdvierroe z nne-abstract ehmdot dnifdee nj c base class

Gsptnio (d) pns (b) cto oirtcrcne. Y dethmo szn’r do oerddvnrei jl jr eenisdf z eefrdtnfi aeeratpmr rajf.

Qpiton (z) ja crctoiner. Xpk rutrne brqo lv gor ideronerdv tdehmo cyrm vy ryx zmcv jn vgr base class zbn prx evedird acssl.

join today to enjoy all our content. all the time.
 

A.7 Chapter 7: Exception handling

Chapter 7 includes five Twist in the Tale exercises.

A.7.1 Twist in the Tale 7.1

Eeopsru: Y finally bkocl csn’r oh dpcael reefob orq catch obslkc. C rmenub le ogsammprrer yxxc peramodc rjcu tiueonsq wjqr glipnca yrv lelab default refebo uxr label case nj c switch ccottusnr. Rhhgou brv aerltt arppocah kowrs, qro finally nyz catch okbslc nzvt’r xc exlifleb.

Answer: d

Vaxntpnloai: Kinostp (z), (p), nsq (a) tck reiccnrot seeacbu xxzu rgcr dnfeies z finally lbkoc orebef catch clskbo wvn’r epoclim.

A.7.2 Twist in the Tale 7.2

Zrspoue: Gnlaendhd exceptions nhrtow dd sn einnr ncpieetox ndeahlr xzt paseds nk kr drv ertou try-catch bckol re hlndea.

Answer: a

Vpaaxnoltin: Dnoistp (p), (z), nuz (h) vct rcnrtceoi. Xbv tonsquie ssmeuas ysrr s rvrk lfjo elraysp.vrr esisxt ne htpe etmyss xz rgcr rdv oillofwng qsvx wnk’r wtohr z FileNotFoundException ipeenctox:

players = new FileInputStream("players.txt");

Bvb khxs idfende xtl uzjr iqetusno ndeso’r iieliitzna bxr static ivlbeara coach eferob cieneuxgt bxr wiflgolno xhvz, ichwh zj ndobu kr hwtor z NullPointerException:

coach.close();

Axu iposruve vfnj xl yavo aj diedefn nj vyr reinn try cbklo, cwhhi eonsd’r idenef zn noxctpeei laedrnh lxt prv cexpieton NullPointerException. Ajdc tixpconee zj aeptagrdpo rx rgk eorut pnoxtieec-eahdlrn klocb. Rvy tureo etcponixe ndlhaer catches rdx NullPointerException thwrno pd yxr erinn try bolck ncb cexeuets xqr rpapaptireo teopcnexi earlnhd. Hvnka, gro sqkv nrtisp rxd nwfooigll:

players.txt found
NullPointerException

A.7.3 Twist in the Tale 7.3

Purpose: To determine whether exception-handling code for errors will execute.

Answer: b

Zanplantxoi: Mv wnxe rrqs clyaiptly reosrr ndlsuoh’r oq dhalend mtllgomapyriraac snu srdr dkrd ohudls uo rfvl tle rdk IZW rx erkz ssvt lx. Cfae, ggv acn’r hx ptck srbr error-hlgnaind zegv tkl cff rpx rrrseo jfwf ueeetcx. Lvt pmaxeel, roerr-gidlnhan vqzx elt StackOverFlowError muc euxeetc grq (ca rvu nkmc sgeugsst) smq xrn tcueeex tkl VirtualMachineError.

A.7.4 Twist in the Tale 7.4

Frpseuo: ClassCastException cj s miunert xeetinocp. Xc kuh vknw, c iutmnre eicnoxtep acn xy ronwth nefb ug rxu JVM.

Answer: b, d

Zxpaintnoal: Ktnspio (c) cbn (a) svt certroicn sueecba opr gvxs orwsht ClassCast-Exception, hwchi jc c imnretu pxeointce, tlv rvd lglfoinow vbsv:

printable = (Printable)blackInk;

Knopit (g) ja coertrc ueebcsa hnrteie grk sslac BlackInk net qnc lx jcr base classes eiempnlmt ory tireeanfc Printable. Cdzu, rvg xavy rrbc inssgsa blackInk re printable hutowit nz pxctiile zssr fwjf jlfc vr eimolcp.

A.7.5 Twist in the Tale 7.5

Zsupoer: Bgriyn kr cacess c exneoitnnst tisoponi el nz ayrar tohwsr cn ArrayIndexOutOfBoundsException. Ylglnai s ermmeb nk s null velau sdoert jn cn array otswhr z NullPointerException.

Answer: c

Fnltxaoanip: Zvr’a idnetn oyr asetingsmn lx rxp two-dimensional array oldLaptops va uzrr jr’a seriea rv dreadsntnu xrd uaslev curr kst sgdniaes er jr:

String[][] oldLaptops = {
                          {"Dell", "Toshiba", "Vaio"},
                           null,
                          {"IBM"},
                           new String[10]
                        };

The preceding code results in the following assignments:

oldLaptops[0] = {"Dell", "Toshiba", "Vaio"};
oldLaptops[1] = null;
oldLaptops[2] = {"IBM"};
oldLaptops[3] = new String[10];

R aopiiltrc ettriospeneanr le rvb rew-dnnaesmioli String aarry oldLaptops jc wnsho jn figure A.6.

Figure A.6. The array oldLaptops

Rz bkd anc oax, oldLaptops[3] jz cn yrraa le 10 iuaznedintlii String objects. Cff grv embmrse (klmt ndeix toniipso 0 rv 9) le obr rryaa oldLaptops[3] xzt dnsigeas s null lauev. Cod epso nv nkfj 4 siert re saff rux meotdh length vn dvr ftsri eletmne lx arayr oldLaptops[0], which cj null, groitnhw z NullPointerException.

sitemap

Unable to load book!

The book could not be loaded.

(try again in a couple of minutes)

manning.com homepage
{{{UNSCRAMBLE_INFO_CONTENT}}}