starting out with java.pdf

1155
starting  o u t  with >>> From Control Structures through Objects 5TH EDITION

Upload: gregory-hopper

Post on 01-Jun-2018

252 views

Category:

Documents


0 download

TRANSCRIPT

  o u t
  w i th > > >
5TH EDITION
 
ge t w i t h th e prog ram m ing
Through t he power o f p rac t i ce and immed ia te pe rsona l i zed
f e e d b a c k , M y P r o g r a m m i n g L a b i m p r o v e s y o u r p e r f o r m a n c e .
My Program m i ngLab
L e a r n m o r e a t w w w . m y p r o g r a m m i n g l a b . c o m  
TM
A L W A Y S L E A R N I N G
P E A R S O N
STARTING
 OUT
 WITH
JAVA"
From Con t ro l S t r uc tu res
t h r o u g h O b j e c t s
F I F T H   FDI I ION
T o n y  Gaddis
H a y w o o d C o m m u n i t y C o l l e g e
PEARSON
B o s to n C o l u m b u s I n d ia n a p o l i s  New  Y o r k S a n F r a n c i s c o   Upper  S a d d l e R i v e r
A m s t e r d a m
  Cape
 T o w n D u b a i L o n d o n M a d r i d M i l a n M u n i c h P a ris M o n t r e a l T o r o n t o
 
I'ditnrial Director:  M a r c i a M o r t o n
lulitnr  i n C h i e f : M i c h a e l  Hirsch
A c q u i s i t i o n * E d i t o r : M a r t G o l d s t e i n
Ed i to r i a l Ass i s tan t : Che lsea   Kharako/ova
D i r e c t o r o f M a r k e t i n g : P a t r i c e J o n e s
M a r k e t i n g M a n a g e r : Y e / M a y a n
M a r k e t i n g C o o r d i n a t o r :  kathryn Kerranti
M a r k e t i n g A s s i s t a n t : E m m a S n i d e r
D i r e c t o r o f P r o d u c t i o n : V i n c e O'Brien
M a n a g i n g E d i t o r:
  \cff  Holcomb
S e n i o r P r o d u c t i o n P r o j e c t M a n a g e r :  Marilyn I loyd
P r o d u c t i o n E d i t o r : P a t B r o w n
Manufacturing
  Huycr:
 Pat  B r o w n
A r t D i r e c t o r : A n t h o n y  (temmellaro
C o v e r D e s i g n e r : J o y c e Cosentino  Wel ls
C o s x r I m a g e : O  M o c k p h o t o
  <
Text  Permiss ions :  |mn KennettA rcative Compliance
l-ullScrsici  P r o j e c t M a n a g e m e n t :  (ogender  T a n e j a ,
A p t a r a * . I n c .
C o m p o s i t i o n : A p t a r a * , I n c .
P r i n t e r / H i n d e r s :  l J
 w a r d s B r o th e r s
C o v e r p r i n t e r :  I e h i g h - P h o e n i * C o l o r /
I
  lagerstosvn
C o p y r i g h t  O 201  1,  2010, 2<H)K
t
  2 0 0 $ b y P e a rs o n E d u c a t i o n , I n c . , p u b l i s h i n g a s  Addison  Wesley. A l l r i gh ts rese rved.
Manufactured in the
 o f
 his publkat toii is
 p r o t e c t e d b y
 C o p y r ig h t ,
  a n d p e r m i s s i o n s h o u l d b e
o b t a i n e d f r o m t h e p u b li s h e r p r i o r t o a n y p r o h i b i t e d r e p r o d u c t i o n , s to r a g e  in a r e t r i e v a l s y s t e m , o r t r a n s m i s s i o n  in
a n y f o r m o r b y a n y
  m e a n t ,
 e l e c t r o n i c , m e c h a n i c a l , p h o t o c o p y i n g , r e c o r d i n g , o r l ik e w i s e . T o o b t a i n
  pcrnussion(s)
  t o
u se m a t e r i a l f r o m   this  w o r k , p le a s e s u b m i t a w r i t t e n r e q ue s t t o P e a r so n  I  d u c a t i o n . I n c . , P e r m i s s i o n s D e p a r t m e n t ,
O n e
  I ake
  St ree t , Upper S add le R ive r , Ne w Je rsey 1 )7458* o r y ou m ay fax you r reques t
  to 201 2
  l f i - 12^1) ,
M a n y o f t h e d e s i g n a t i o n s b y m a n u f a c t u r e r s a n d wtlers  t o d i s t i n g u i s h   their  p r o d u c t s a r e c l a i m e d a s t r a d e m a r k s *
W h e r e t h os e d e s i g n a t i o n s a p p e a r  m  th i s b o o k , a n d t h e p u b l is h e r w a s a w a r e o f a t r a d e m a r k c l a i m , t h e d e s i g n a t i o n s
h a v e b e e n p r i n t e d
  in
  i n i t i a l caps o r a l l caps*
I ibrary of  C o n g r e s s (  atalnging-in-Publication  D a t a
daddis,Ton)r,
Starting nui with  J a v a : f r o m c o n t r o l s t r u c t u r e s t h r o u g h  ohjevfs/ lony  d a d d i s . — 5 t h e d .
p, c m .
ISBN-10t0-13-2B55834
1 .
 <(
  wience)
10 9 8 7 6 5 4 3 2 1
PEARSON
S V E I S B N - 1 3 : 978-0-13-289038-0
S V L I S B N - 1 0 : 0 - 1 3 - 2 8 9 0 3 8 - 0
I S B N - I 3 : 9 7 8 - 0 - 1 3 - 2 8 5 5 8 3 - 9
I S B N - 1 0 :  0-13-285583-6
 
 12
Chap te r  14
Chap te r  15
Chap te r  16
|ava Fundamenta ls
Loops and Files
A First Look at Classes
Arrays and the
Text Processing and More about Wrapper
Inher i tance
A First Look at CUI Appl icat ions
Advanced CUI Appl icat ions
Applets and More
Index
Credits
A p p e n d i x e s A - M
Case Studies 1-7
1
27
109
193
273
323
407
497
561
619
699
755
843
Introd uctio n to Compu ters and Java 1
1.1  I n t r o d u c t i o n 1
1.2  Wh y Prog ram? 1
1.3  C om pu te r Systems : Ha rdwa re and So f twa re 2
1.4 Prog ram m ing Languages 6
1.5 What  Is a Prog ram Made O f? 9
1.6 The Prog ram m ing Process
  16
1.7  O b j e c t -O r i e n t e d P r o g r a m m i n g 1 9
Rreu'w Otiestiam •"»</ Fxereises  21
2.1 Th e Parts of a Java Prog ram
  27
2.2
  T h e p r i n t a n d
 pr int in
2.3 Variables an d Literals 39
2.4 Pr im i t ive D ata Types 44
2.5 Ar i thm et ic Opera to rs 54
2 .6 C om b ine d Ass i gnmen t Ope ra to r s 63
2.7
  Co nvers ion be tw ee n Pr im i t ive Data Types 65
2 .8 C rea t i ng Na m ed Cons tan t s w i t h
  f inal
2.10 Scope 75
  77
2.13 Reading Keybo ard   Input  84
2.14  D ia log Boxes 92
2 .15 C om m on E r ro rs t o Avo id 99
Review {Juesliuiis and Exercises  100
Programming < hallengts  105
  1
  35
3 .6 C o m p a r i n g s t r i n g O b j e c t s  143
3.7 More ab ou t Var iab le D ec la ra t ion   a n d  Scope
  149
3.8   T h e C o n d i ti o n a l O p e r a t o r  ( O p t io n a l )
  150
3 .9 The sw i t ch S ta tem en t
  152
3.10
  Thesyatem.out.printf
3.11
  Crea t ing Ob jec t s w i t h t he
 DecinairorMt
  Class
  174
3.12 C om m on E rror s t o Avo id
  181
Loops an d Files 193
4.1 The   I n c r e m e n t  a n d  Dec remen t Ope ra to r s   193
4.2   T he  w h i le L o op  197
4.3 Us ing the
 Val idat ion 204
4 .4   T h e  d o - w h i l e L o o p 2 0 8
4.5   T he   f o r Loop
  211
4.6 Runn ing   Totals and  Se nt inel Values 220
4.7   N e s t e d Loops 225
4.8 The break and continue Statements (Optional) 233
4 .9 D ec id i ng Wh i ch   Loop  to Use 233
4.10  I n t r oduc t i on   to Fi le
 Input
  a n d O u t p u t 2 34
4.11  G e n e r a t in g R a n do m N u m b e r s  w i th   th e  Random Class 253
4.12 Com mo n Errors to Avoid 259
Rfiitu-Questions andExorcism  260
Chapter 5 Methods 273
5 .1 I n t r odu c t i on t o Me tho ds 273
5 .2 Passing A rgum en ts t o a Me tho d 283
5.3 Mo re ab ou t Loca l Variab les 295
5 .4 Re tu rn i ng a Va lue f r om a Me tho d 297
5 .5 P rob lem So lving w i t h Me thods 306
5 .6 C om m on E r ro rs t o Avo id
  310
Rci'icu-
 {iiiatiom
6.1
  O bjec ts an d C lasses 323
6.2 W ri t in g a Sim ple Class, Step by Step 330
6.3 Ins tance F ie lds an d Me tho ds 347
6.4 C ons t ruc to rs 352
6.5 Pass ing Ob jec ts as Argum en ts 364
6 .6 O ve r l oad ing Me tho ds and Co ns t ruc to r s 376
6.7 Scope of Instan ce Fie lds 384
6.8 Packages an d impo r t S ta tem ents 386
6 .9 Focus on Ob jec t -O r i en ted D es ign : F i nd ing t he C lasses
an d The ir Respons ib i li ties 388
6 .10 C om m on E r ro rs t o Avo id 394
Renew  Questions .inJ
Programming  Ckaltangai  400
Ch apter 7
Arrays and th e Ar ray Lis t Class 40 7
7.1 In t ro duc t ion to Arrays 407
7.2
  417
7.3 Pass ing Arrays as Argu m en ts to Meth ods 426
7.4 Som e Useful Array
 Algonthms
  430
7 .5 Re tu rn i ng A rrays f r o m Me thods 443
7.6 S t r i n g Arrays 445
7.7
  Arrays o f Ob jec ts 448
7.8 The Sequen t ia l Search A lgo r i thm   451
7.9 Tw o-D ime ns ion a l Arrays 454
7.11
  The Se lec t ion Sor t an d the B inary Search A lgo r i thm s 467
7 .12 Co m m and-L ine A rgum en ts and Va r iab l e -Leng th A rgum en t Lis ts . . . 472
7.1 3  The A r ra yL i s t C lass 476
7 .14 C om m on E r ro rs t o Avo id 485
Review
'} < igmmmtng < hjUenges  490
Ch apter 8
A S e c o n d L o o k a t C l as s es a n d O b j e c t s 4 9 7
8.1 S ta ti c C lass Mem bers 497
8.2 Pass ing O b jec ts as Argu m en ts to Me tho ds 504
8 .3 Re tu rn i ng Ob jec t s f r om Me thods 507
8.4 The
 toStr ing
  M e t h o d 5 0 9
8 .5 W r i t in g a n e q u a l s M e t h o d  513
8 .6 Me tho ds Th a t Copy Ob jec t s
  516
  519
8 .8 The t h i s Re fe rence Va r iab l e 532
8.9 En um era ted Types 535
8.10 Garbage C o l lec t ion 544
 
Contents
8.11
  Focus on Ob jec t -O r i en ted Des ign : C lass C o l l abo ra t i on   546
8 .12 C om m on E r ro rs to  Avoid  550
Rvt'icu-
 (Jiifitions
 9
  561
9.1 In t ro duc t ion to Wrapper C lasses   561
9.2 Ch arac te r Tes t ing an d C onvers ion w i th the Ch arac te r C lass  562
9.3 M o r e s t r i n g M e t h o d s  570
9.4  The
  595
9.6 Wra pper Classes for the N um eric Data Types   603
9.7
 TeitScoreReader
  Class  606
9 .8 C om m on E r ro rs  to  Avoid  610
Review Questions and Exorcism  610
Programming < Utattenges  614
C h a p t e r  10  Inher i tance  619
10.1 What
  619
10.2 C a l l ing the Superc lass C on s t ruc to r  632
10.3 O ver r id ing Superc lass Me tho ds   640
10.4 Pro tec ted Mem bers   649
10.5 Cha ins  of I nhe r it ance   655
10.6   T he  o b j e c t C la ss  661
10.7  Po lymorph i sm   663
10.8 Abs t rac t C lasses an d Abs t rac t Me thods   668
10.9
  Interfaces   675
10.10  C o m m o n E r r o r s to Avoid  687
Review Questions and Exercises  688
Programming < 'hallenget  693
11.1  H an dl ing Exceptions  699
11 .2 Th row ing Excep tions   723
11.3 Advan ce d Topics: Binary Files, Ran dom Access Fi les,
and Ob jec t Ser ia l iza t ion   729
11 .4 C om m on E r ro rs to  Avoid  746
Review Q uestions
  jihi Exercises  746
Programming Challenges  752
C h a p t e r 12 A First Lo ok at GUI Appl icat ions  755
12.1   I n t r o d u c t i o n   755
 
12.5 Borders   815
12.6 Focus on Prob lem So lv ing : Ex tend ing C lasses f rom
 Jpanel
  . . . .  818
12.7  Splash Screens 830
12 .8 Us ing Conso le O u tpu t t o De bug
 a
  831
12.9
  C o m m o n E rro rs t o A v o id 8 3 6
Review Question and Exercises  836
Programming Challenges  839
  1
 3  A d v a n c e d G UI A p p l i c a t i o n s 8 4 3
13.1 The Sw ing an d AWT Class H ie ra rchy 843
13.2 Rea d-Only Te xt Fields 844
13.3 Lists 84 6
13.4 C o m bo Boxes 862
13.5 D isp lay ing Images in Labe ls an d But tons 868
13.6 Mne m on ics an d Too l T ips 874
13.7 F ile Choosers an d Co lo r Cho osers 876
13.8 Men us 880
13.9
  More abo u t Text C om pone n t s : Tex t A reas and Fon ts 889
13.10 Sliders 893
13.12
  C om m on E r ro rs t o Avo id 900
Review Q uestion ami l-'xert-nn  901
Programming < 'hattenges  906
  14
  A p p l e t s a n d M o r e
  911
14.1   I n t r oduc t i on t o Apple ts   911
14.2 A Brie f In t ro duc t ion to HT ML
  913
14.3 C rea t ing Apple ts w i th Sw ing 922
14.4 Using AWT for Porta bi l i ty  931
14.5 D raw ing Shapes 936
14.6 H and l ing Mou se Events 957
14.7 Timer Objects 967
14.8 Playing Au dio 971
14 .9 C om m on E r ro rs t o Avo id 976
Review Q uestions
Programming Challenges  982
C h a p t e r  1 5 R e c u r s io n 9 8 5
15.1 In t ro duc t ion to Recurs ion 985
15.2 So lving Prob lem s w i th Recurs ion 988
15.3 Exam ples of Recurs ive Me tho ds 993
15.4 A Recursive Binary Search Me th o d 999
15 .5 The Towers o f Ha no i
  1002
15 .6 C om m on E r ro rs t o Avo id
  1007
1007
C h a p t e r 1 6   D a t a b a s e s 1 0 1 3
16.1   I n t r o d u c t i o n   t o   Da tabase Managemen t Sys tems
  1013
16.2  Tables, Row s, an d  C o l u m n s 1 0 1 9
16.3   I n t r o d u c t i o n   to the SQL   S E L E C T
 Statement
  1022
16.4   Inser t ing Rows  1044
16.5 Updat ing   a n d D e l e t in g   Exis t ing Rows 1048
16.6   Crea t ing and D e le t i ng   Tables   1 0 5 7
16.7   Crea t i ng   a N e w   Da tabase  w i t h  |DBC 1060
16.8 Scrol lable   Result  Sets  1062
16.9 Result   Set   Metada ta   1063
16.10 D isp lay ing Que ry   Results   in a
 JTable
  1067
16.12   Advanced Top ics 1099
16.13 C om m on E r ror s t o   Avoid
  1101
Programming
 < "halUngti  1106
J a v a ™ Q u i c k R e f e r e n c e   1109
I n d e x 1 1 1 1
C r e d i t s
  1127
C o m p a n i o n W e b s i t e :
Appendix A Ge t t ing S ta r ted w i th A l ice
Appendix B The ASC I I /Un icode Cha rac ters
Appendix C O pera to r Precedence an d Assoc ia t iv ity
Appe ndix D Java Key Wo rds
Appendix  E  I n s t a ll ing t he JDK and JDK D ocu m en ta t i on
Appendix   F   Us ing t he j ava doc U t i li t y
Append ix C More abo u t   th e  Math Class
Appen dix H Packages
Appendix
  I
  Wo rk ing w i th Records an d Random Access F iles
Appendix
 J
  More abo u t JOp t i onPa ne D ia l og Boxes
Appendix K Answers to C hec kpo in ts
Append ix L Answe rs t o O dd-Nu m be red Review Ques t ions
Appen dix M Insta l l ing Java DB
Case Study
  1
  Ca l cu la t i ng Sa les Co m m iss ion
C a se S t u dy 2 T h e A m o r t i z a t i o n C la ss
Case S tudy 3 The P in T e s te r C lass
Case S tudy 4 Paralle l Arrays
Case S tudy 5 The Fe e t
 Inches
  Class
Case Study 6   The SerialNumber   Class
 
C h a p t e r 1
C h a p t e r 2
C h a p t e r
  3
C h a p t e r
  5
Chapter 8
Chapter 10
  11
Chapter 12
C om p i l ing and Run n ing a |ava P rog ram , p .  14
Us ing a n   IDE, p.  15
Your First Java Program, p. 25
Disp lay ing Conso le Output , p . 33
Declar ing Var iables, p. 39
Simple Math Expressions, p. 55
The
 Miles-per-Gallon
 109
The
  Sta tement , p . 119
The  i f - e l w - i f  Sta temen t , p .  130
The T ime Ca l cu la to r P rob lem , p . 1 89
The w h i l e Loop , p.
 197
Pass ing Arguments to a Method, p . 283
Return ing a Va lue f rom a Method, p . 297
The Retai l Pr ice Calculator Problem, p.
  316
Wri t in g C lasses an d Cre at ing Ob jec ts , p . 331
In i t ia l i z ing an Ob jec t with  a Co nst ruc to r , p . 352
The Persona l In fo rmat ion C lass Prob lem, p. 401
Access ing Ar ray E lements in a Loop, p . 411
Pass ing an Ar ray to a Me th od , p. 426
The C ha rge Accoun t Va l ida t ion P rob lem, p . 491
Return ing Ob jec ts f rom Methods, p . 507
Agg rega t i on , p . 519
The  BankAccount  Class Co py Const ruc to r Prob lem , p. 556
The Sentence Capi ta l izer Prob lem, p. 615
Inher i tance, p . 619
Polymorph ism, p. 663
Ha ndl ing Except ions, p . 699
I he  Exception Pro|CCt
  Prob lem,
  p. 754
C rea t ing a S imple GUI Appl ica t ion , p . 758
Handl ing Events, p. 771
The M on th ly Sales Tax Prob lem , p. 840
693
 
Chapter 13
L O C A T I O N O F V I D E O N O T E S I N T H E T E X T
  (continued)
T h e J L i a t C o m p o n e n t , p . 8 4 6
The  JComboBox C o m p o n e n t , p . 8 62
The
 Image
Chapter 14 Creat ing an Apple t , p . 923
The House Apple t Prob lem, p. 982
C h a p t e r  1 5 Reduc ing a Prob lem w i th Recurs ion, p . 989
The Recursive Power Problem, p.
  1011
W
elcome  t o   Starting Out w ith Java: From Control Structures   through  Objects,
F i ft h E d i t i o n . T h i s b o o k i s in t e n d e d   io r  a on e -s e m e s t e r o r a t w o - q u a r t e r
  CSI
c o u r s e . A l t h o u g h i t is w r i t t e n f o r s tu d e n t s w i t h n o p r io r p r o g r a m m i n g b a c k g r o u n d ,  even
e x p e r ie n c e d s t u d e n t s w i l l b e n e f i t f r o m
  its
  de ta i l .
C o n t r o l S t r u c t u r e s
  F i r s t ,
  T h e n O b j e c t s
This text
  f ir s t i n t r o d u c e s t h e s tu d e n t t o t h e f u n d a m e n t a l s o f da t a t y pe s , i n p u t a n d o u t p u t ,
c o n t r o l s t r u c t u r e s , m e t h o d s , a n d o b j e c ts c r e a t e d f r o m s t a n d a r d l i b r a r y c la s s e s.
N e x t ,
  the s tuden t l ea rn s to use a r ra ys o f p r im i t i ve types and re fe rence types . A f te r i h i s ,
 the
s t u d e n t pr o g re s s e s t h r o u g h m o r e a d v a n c e d t o p i c s , s u c h a s i n h e r i t a n c e , p o l y m o r p h i s m , t h e
c r e a t i o n a n d m a n a g e m e n t o f p a c k a g e s ,
 CU I
  a p p l ic a t i o n s , r e c u r s i o n , a n d d a ta b a s e p r o g r a m
m i n g .
  F r o m e a r l y i n t h e b o o k , a p p l i c a t i o n s a r e
 documented
  ;avadoc
 c o m m e n t s , As t h e
s t u d e n t p ro g r e ss e s t h r o u g h t h e t e x t , n e w   ]*v*doc  t ags
 ^re
  c o v e r e d a n d d e m o n s t r a t e d .
  . . .
  se r ies , t he h a l lm ark o f t h i s t ex t is i ts c lea r ,
f r i end ly , and   easy-to-understand w r i t i n g . I n a d d i t i o n , i t is r ic h   in  e x a m p l e p r o g r a m s t h a t a r e
c o n c i s e a n d p r a c t i c a l .
C h a n g e s i n T h i s E d i t i o n
T h i s
 book's  pedagogy,
 o r g a n i z a t i o n , a n d c l e a r w r i t i n g s t y le r e m a i n t h e s a m e as
 in
  t he p rev ious
e d i t i o n . M a n y i m p r o v e m e n t s h a ve b e e n m a d e , w h i c h   arc  s u m m a r i z e d h e r e :
* N ew Java   "  Top ics Added: Th i s ed i t i on d i scusses some o f t he new language fea tu res
added
  in
 the
  a b i l i t y t o s w i t c h o n a
 string
  express ion is d iscussed in
Ch ap te r 3 , t ype in fe rence w i th the d iam on d opera to r i s d iscussed  in C h a p t e r 7 , a n d m u l t i -
ca tch excep t ion h an d l i ng i s d iscussed in C hap te r
  11 •
•  New  O r g a n i z a t i o n : In p r e vi o u s e d i t io n s ,  CiUI  p r o g r a m m i n g w i t h S u i n g w a s i n tr o du c e d
in C hap te r 7 , an d then rev is i t ed i n Cha p te r   1 1 . M an y o f the reviewers reques ted tha t
 CiUI
prog ram m ing be pos tponed u n t i l i nhe r i t ance h ad been covered- In th i s ed i t i o n , t he   First
T o o / : at
  Applications  cha p te r has been mo ved to
  ( lupter 12.1
  lowever, the chap te r
has been wr i t t e n i n a ma nner t h a t i t can s t i l l  be  covered im m ed ia te ly a f te r Cha p te r 6 , as
in the p rev ious ed i t i ons . I ns t ruc to rs who p re fe r t o fo l l ow the p rev ious sequence o f t op ics
can s t i l l d o  s o .
 (See the chap te r dependency cha r t i n F igu re  P-l  for poss ib le sequenc ing of
the
 chapters.)
xv l Preface
A N e w C h a p t e r o n
 Databases New
 This
 SQL
  us ing JavaDB.
Expanded C overage o f   (he t w i t c h S t a t e m e n t : I n C h a p t e r 3 , t h e i n t r o d u c t i o n t o t h e s w i t c h
statement
  has been rew r i t t en , an d enhanced w i th a fl owc har t - A sec t ion cove r ing the  a b i l
i t y t o s w i t c h o n a s t r i n g   in Java  7 has also been adde d.
Coverage o f
 Systoa.out.pr int f
  H a s
 The
i n C h a p t e r
  ) his
  r e w r i t t e n ,
 and expanded to i nc lude
 diagrams
 cover
age of addi t iona l format spec i f iers.
Sys tm.ou t .p r i n t f
  Is Us e d f o r F o r m a t t i n g C o n s o l e O u t p u t : I n th i s e d i t i o n ,
  Sys tem,
ou t .p r in t f  is used wh en num bers and s t ri ngs need to be fo rm a t ted fo r ou tpu t i n conso le
prog rams. The
 DecimalFonMt
  c lass is s t i l l in t roduced, but
  it
in
 CiUI
I )iscuss ion of N ested
 I .oops
 Has Been
 h x p a n d e d : In
 Ch apte r 4 the sec ti on on nes ted loops
has been expanded to i nc lude an   In the Spotlight  sec t ion h igh l i gh t i ng the use o f nes red
loops to pr in t pat terns.
Usage o f Rando m Num bers H as Been
  I
  xpanded:
  In
  -1
 t he s e c t io n o n r a n d o m
numbers has been expanded, and   rum  inc ludes   In the Spotlight  sec t i ons demons t ra t i ng
h o w r a n d o m n u m b e r s c a n b e u s e d t o s i m u l a t e t h e r o l l i n g o f d i c e , a n d t o
 determine
  the
resul ts of a co in toss.
A N e w I n t r o d u c t i o n
  [o
  Objec ts Has Been Added to Ch ap te r 6 : I n Chap te r  <\
 a
 n e w i n t r o
duc t ion to ob jec ts has been added to the beg inn ing  of  t he chap te r . The new in t rodu c t i on   is
much
 m ore p rac t i ca l an d conc re te than the p rev ious i n t ro du c t i o n , d iscuss ing Java ob jec t s
i ( M I  Ihe stndeni I us alread)  used,  I he go al ol this new  i n t r o d u c t i o n is to s l u m ; in   \  f am i l
i a r way , how p rog rams cons i s t o f
  ob jec t * .
 object-oriented
 m ind-se t , an d
prepares the s tudent to wr i te h is or her own c lasses.
N e w M o t i v a t i o n a l E xa m p l e s o f (l a s s e s
  \\4\x
  Been Added to Cha p te r 6 : I n C hap te r 6 ,
new m ot iva t i on a l examp les o f classes have been added. O ne o f t he new examples i n t ro
duces
 a
 Die c lass tha t s im u la tes a d ie tha t can be ro l led
 in
  a g a m e . A n o t h e r e x a m p le s h o w s
how a va r ia t i on o f t he  game o f Cho-I  I an can  he  s imulated wi th c lasses that represent the
players, a dealer , and the d ice.
E q u i p p i n g C i U I A p p li c a t io n s w i t h a  S t a t i c * * *  M eth od Is I n t roduc ed Ea r l ie r : I n t he  First
l.uok  at
  iiVI
  Applications  chapter, w h i c h is n o w C h a p t e r  1 2,  t he top ic o f equ ipp ing a
C iUI c lass w i th a s ta ti c ma in m e thod has been moved to a po in t ve ry ea r ly i n t he chap te r .
N e w
  Exercises
 a n d P ro g r a m m i n g P ro b l e m s :
 New slu>rtcr
 a l g o r i t h m w o r k b e n c h e x er ci se s ,
a n d new  m o t i v a t i o n a l p r o g r a m m i n g p r o b le m s h a ve b e en a dd e d t o   main  of the chapters.
O r g a n i z a t i o n o f t h e T e x t
T h e
  text
  t e a c h e s J a va s t c p - b y - s t c p . E a c h c h a p t e r c o v e r s a m a j o r s e t o f t o p i c s a n d b u i l d s
k n o w l e d g e a s s t u d e n t s pr o g r e s s t h r o u g h t h e
  h o o k ,  Mthough the
  c h a p t e r s c a n
  be Bflllly
t a u g h t i n t h e i r e x i s t i n g s e q u e n c e , t h e r e i s s o m e f l e x i b i l i t y . F i g u r e
  P-1
 s h o w s c h a p t e r d e p e n
d e n c i e s . E a c h b o x r e p re s e n t s a c h a p t e r o r a g r o u p o f c h a p t e r s . A n a r r o w p o i n t s f r o m a
c h a p t e r t o t h e c h a p t e r t h a t m u s t b e p r e v i o u s l y c o v e r e d .
P r e l a t e x v l l
F i g u r e   P- l  C h a p t e r d e p e n d e n c i e s
ChipleVS^  -e
Chapter 7
A r r a y s a n d t h t
A r r e y L i s t  C l a i m
Chapter 9
T e x t P r o c e s s i n g
a n d M o r a a b o u t
W r a p p e r C l a s s e s
Depend
Chapters
A S e c o n d L o o k
a t C l a s s e s
a n d O b j e c t s
rndeOn
Chapter <0
I n h e r i t a n c e
i
Chapter 12
A F i r s t L o o k a t
Q U I A p p l ic a t i o n s
^  C^wltuteOUIt
- CftaitM it
Chapter 14
A p p l e t s a n d M o r e
Depends On
Chapter 11
E x c e p t i o n s a n d
A d v a n c e d  File  I/O
Depend*
 On
Depend*
 On
Cnapferia
Advanced
G U I A p p l ic a t i o n s
Brief Overv iew of Each Chapter
C h a p t e r 1 : I n t r o d u c t i o n t o C o m p u t e r s a n d J a v a .   I h is  chapter  p r o v i de s a n i n t r o d u c
t i o n c o t h e fie ld o f c o m p u t e r s c i en c e a n d c o v e r s th e fu n d a m e n t a l s o f h a r d w a r e , s o f t w a r e ,
a n d p r o g r a m m i n g l a n g u a g e s . T h e e l e m e n t s o f a p r o g r a m , s u c h as ke y w o r d s , v a r i a b le s ,
o p e r a t o r s , a n d p u n c t u a t i o n , a r e d is c u s s e d b y e x a m i n i n g a s im p l e p r o g r a m . A n o v e r v i e w o f
e n t e r i n g s o u r c e c o d e , c o m p i l i n g , a n d e x e c u t i n g a p r o g r a m is p r e s e n te d . A b r i e f h i s t o r y o f
J a v a i s a l s o g i v e n .
C h a p t e r 2 : J a v a F u n d a m e n t a l s . T h i s c h a pt e r
  gees scudents
  s t a r t e d in Ja v a b y i n t r o d u c
i n g da t a t y pe s , i d e n t i f i e r s , v a r i a b l e d e c l a r a t i o n s , c o n s t a n t s , c o m m e n t s , p r o g r a m o u t p u t ,   ,\\M\
s i m p l e a r i t h m e t i c o p e r a t i o n s . T h e c o n v e n t i o n s o f p r o g r a m m i n g s ty le a r e a l s o i n t r o d u c e d .
S t u d e n ts l e a r n t o r e a d c o n s o l e i n p u t w i t h t h e   Scanner  c la s s a n d w i t h d i a l o g b o x e s u s i n g
J O p t i o n P a a a .
C h a p t e r 3 : D e c i s i o n S t r u c t u r e s .   In this  c h a p t e r s t u d e n t s e x p l o r e r e l a t i o n a l o p e r a t o r s
a n d r e l a t i o n a l e x pr e s s io n s a n d a r c s h o w n h o w t o c o n t r o l th e flo w o f a p r o g r a m w i t h   the  i f ,
i f - e l s e ,
  a n d  i f - e l s e - i f  s t a t e m e n t s . N e s t e d i f s t a t e m e n t s , l o g i c a l o p e r a t o r s , t h e c o n d i t i o n a l
 
  Preface
S t r i n g o b j e ct s w i t h t h e e q u a l s , c o m p ar eT o ,  equal s i g n o r e C a s e , a n d   compareToIgnoreCase
m e t h o d s . F o r m a t t i n g n u m e r i c o u t p u t w i t h t h e
  DecimalFormat
  c l a s s i s c o v e r e d , a n d t h e
System.out.printf  m e t h o d i s i n t r o d u c e d .
Chapter 4 : Loops and F i les .
 T h i s c h a p t e r c o v e rs J a va 's r e p e t i t io n c o n t r o l s t r u c t u r e s . T h e
w h i l e l o o p , d o - w h i l e l o o p , a n d f o r l o o p
  are
  t a u g h t , a l o n g w i t h c o m m o n
  uses
  for these
d e vi c e s. C o u n t e r s , a c c u m u l a t o r s , r u n n i n g t o t a l s , s e n t i n e l s , a n d o t h e r a p p l i c a t i o n - r e l a t e d
t o p i c s a r e d is c u s s e d . S i m p l e f il e o p e r a t i o n s f o r r e a d i n g a n d w r i t i n g t e x t f il e s a r e i n c l u d e d .
C h a p t e r 5 : M e t h o d s .  I n t h i s c h a p t e r s t u d e n t s l e a r n h o w t o w r i t e v o i d m e t h o d s , v a l u e -
r e t u r n i n g m e t h o d s , a n d m e t h o d s t h a t d o a n d d o n o t a c c e p t a r g u m e n t s . T h e c o n c e p t o f
f u n c t i o n a l d e c o m p o s i t i o n is d is c u s s e d .
C h a p t e r 6 : A F i r s t L o o k a t C l a s s e s .
  T h i s c h a p t e r i n t r o d u c e s s tu d e n t s t o d e s i g n i n g
c la s se s f o r t h e p u r p o s e o f i n s t a n t i a t i n g o b j e c t s . S t u d e n t s l e a r n a b o u t c l a s s fi e ld s a n d m e t h
o d s ,
 a n d
 Are
  i n t r o d u c e d a s a
 design  t o o l . Then
  c o n s t r u c t o r s a n d o v e r l o a d i n g
a rc d i scussed. A
  BankAccount
  c l a s s is p r e s e n t e d a s a c a se s t u d y , a n d a s e c t io n o n o b j e c t -
o r i e n t e d d e s ig n
  is
  This
  sec t i on l eads the s tuden ts th rough the p rocess o f iden t i f y
i n g cla s se s a n d t h e i r r e s p o n s i b i li t ie s w i t h i n a p r o b l e m d o m a i n . T h e r e i s a l s o a s e c t io n t h a t
b r i e f l y exp la ins packages and the impor t s ta temen t .
C h a p t e r 7 : A r r a y s a n d t h e
  A r r o y L i s t
  Class.  In this
 cha p te r s tuden ts lea rn t o c rea te
a n d w o r k w i t h s i n g le a n d m u l t i -d i m e n s i o n a l a r r a ys . N u m e r o u s a r r a y -p r o c e s s in g
  l e c h -
nu]ues
 a r c d e m o n s t r a t e d , s u c h a s s u m m i n g t h e e l e m e n t s
  in
  an a r ray , f i nd ing the h ighes t and
l o w e s t v a l u e s , a n d s e q u e n t i a l l y s e a r c h i n g a n a r r a y . O t h e r t o p i c s , i n c l u d i n g r a g g e d a r r a y s
a n d v a r i a b l e - l e n g t h a r g u m e n t s ( v a r a r g s ) , a r c a l s o d is c u s s e d . T h e
  ArrayList
  c l a s s i s i n t r o
duce d, an d Java 's gen er i c t ypes a re b r i e f l y   difCOftscd a n d d e m o n s t r a t e d .
Ch ap ter 8 : A Second Look a t C lasses an d Ob jec ts .   I his
 c h a p t e r s h o w s s t u d e n ts h o w
t o w r i t e c la ss es w i t h a d d e d c a p a b i l i t i e s . S t a t ic m e t h o d s a n d f ie l d s , i n t e r a c t i o n b e t w e e n
o b j e c t s , p a s s in g o b j e c t s a s a r g u m e n t s , a n d r e t u r n i n g o b j e c t s f r o m m e t h o d s a r c d is c u s s e d .
A g g r e g a t i o n a n d t h e " h a s a " r e l a t i o n s h i p i s c o v e r e d , a s w e l l a s e n u m e r a t e d t y p e s . A s e c t io n
o n
  obicct-orientcd
  d e s i g n s h o w s h o w t o u s e
  CRC
  c a r d s t o d e t e r m i n e t h e c o l l a b o r a t i o n s
a m o n g c l a ss e s .
C h a p t e r 9 : T e x t P r o c e s s in g a n d M o r e a b o u t W r a p p e r C la s se s .  I his  c h a p t e r d i s -
iiisses the numcru   Charaetaj wrapper i   lo r
s t r i n g s , t e s t i n g t h e c a s e o f c h a r a c t e r s , a n d c o n v e r t i n g t h e c a s e o f c h a r a c t e r s a r c c o v e r e d .
A u t o b o x i n g a n d u n b o x i n g a r c a l so d is c u s s e d . M o r e
  s t r i n g
  c l a s s m e t h o d s a r c c o v e r e d ,
i n c l u d i n g u si n g th e s p l i t m e t h o d t o   tokenize  s t r i n g s . T h e c h a p t e r a l s o c o v e r s t h e
S t r i n g B u i l d e r a n d
 StringTokenizer
  1 0 :
  I n h e r i t a n c e .  The
  s tudy o f classes co n t i nu es i n
 this
 with
  t he sub jec ts
o f i n h e r i t a n c e a n d p o l y m o r p h i s m . T h e t o p i c s c o v e r e d i n c l u d e s u p e r c la s s e s , s u b c la s s e s , h o w
c o n s t r u c t o r s w o r k i n in h e r i t a n c e , m e t h o d o v e r r i d i n g , p o l y m o r p h i s m a n d
 dynamic
  b i n d i n g ,
p r o t e c t e d a n d p a c k a g e a c c e s s, c la s s h i e r a r c h i e s , a b s t r a c t c la s s e s , a b s t r a c t m e t h o d s , a n d
in te r faces .
x ix
C h a p t e r 1 1 : E x c e p t io n s a n d A d v a n c e d F il e  I /O.  I n t h i s
  chapter students learn
  t o
d e v e l o p e n h a n c e d e r r o r t r a p p i n g t e c h n i q u e s u s i n g e x c e p t i o n s , I
 landling
  e x c e p t i o n s i s c o v
e r e d , as
 w e l l a s d e v e l o p in g a n d t h r o w i n g
 custom
 excep t ions . Th e chap te r d iscusses advance d
t e c h n i qu e s f o r w o r k i n g w i t h s e q u e n t i a l a c ce s s, r a n d o m a c c es s , t e x t , a n d b i n a r y fi le s .
Chapter 12 : A F i rs t Look a t   CUI  A p p l i c a t i o n s .  Th is chap te r p resen ts the bas i cs o f
d e v e l o p i n g C U I a p p l i c a t i o n s w i t h S w i n g . F u n d a m e n t a l S w i n g c o m p o n e n t s a n d t h e b a s ic
c o n c e p t s o f e v e n t - d r iv e n   programming a r e c o v e r e d .
C h a p t e r 1 3 : A d v a n c e d C U I A p p l i c a t i o n s .
  T h i s c h a p t e r c o n t i n u e s t h e s t u d y o f G U I
a p p l i c a t i o n
  d e v e l o p m e n t .
  M o r e a d v a n c e d c o m p o n e n t s , m e n u s y s te m s , a n d
  look-and-fcel
are covered .
C h a p t e r 1 4 : A p p l e t s a n d M o r e .  In this chapter
  s t u d e n t s a p p l y t h e i r k n o w l e d g e o f
  CUI
d e v e l o p m e n t t o t h e c r e a t i o n o f a p p l e t s . I n a d d i t i o n t o u s i n g S w i n g a p pl e t c la s s e s , A W T
c lasses a re d i scussed fo r po r tab i l i t y .
 Drawing
  s i m p l e g r a p h i c a l s h a pe s
  is discussed.
C h a p t e r 1 5 : R e c u r s i o n .
  T h i s c h a p t e r p re s e n ts r e c u r s i o n a s a
 problem-solving
  t e c h n i q u e .
N u m e r o u s  examples o f r e c u r s i ve m e t h o d s a r e d e m o n s t r a t e d .
C h a p t e r 1 6 : D a t a b a s e s .  I his
 c h a p t e r i n t r o d u c e s t he s tu d e n t t o da t a b a s e p r o g r a m m i n g .
The bas ic concep ts o t da tabase ma nage m en t sys tems and
 S< l
  are f i r s t i n t roduced. Then the
s tuden t l ea rns to use
  |1>KC
  t o w r i t e d a t a b a s e a p p l i c a t i o n s
  in
  is
e r e d , ami
  n u m e r o u s e x a m p l e p r o g r a m s a r e p r e s e n t e d t h r o u g h o u t t h e c h a p t e r .
F e a t u r e s o f t h e T e x t
C o n c e p t S t a t e m e n t s .  Tach  m a j o r s e c t i o n o f th e t e x t s t a r t s with  a c o n c e p t s t a te m e n t t h a t
conc i se ly summar izes the focus o f t he sec t i on .
E x a m p l e P r o g r a m s .
  T h e t e x t h a s a n a b u n d a n t n u m b e r o f c o m p l e t e a n d p a r t i a l e x a m p l e
p r o g r a m s , e a c h de s ig n e d t o h i g h l i g h t t h e c u r r e n t   t o p i c .  In most  cases the p rog rams a re p rac
< *
P r o g r a m O u t p u t .  I
 a c h e x a m p l e p r o g r a m i s f o l l o w e d b y a
  sample
  its
  o u t p u t , w h i c h
s h o w s s tu d e n ts h o w t h e p r o g r a m f u n c t i o n s .
C h e c k p o i n t s .  C h e c k p o i n t s , h i g h l i g h t e d b y th e c h e c k m a r k   i c o n ,  a p p e a r a t i n t e r v a l s
t h r o u g h o u t e a c h
 chapter.They
  a r e d e s ig n e d t o c h e c k s t u d e n t s ' kn o w l e d g e s o o n a f t e r le a r n
i n g a n e w
  t o p i c .
  A n s w e r s f o r a l l C h e c k p o i n t q u e s t io n s a r c p r o v i d e d i n A p p e n d i x K , w h i c h
c a n b e d o w n l o a d e d f r o m th e
 book's
  resou rce page a t
  w w w . p e a r s o n h i g h e r e d . c o m / g a d d i s .  
N O T E :
  N o t e s a p p e a r a t s e v e ra l pla c e s t h r o u g h o u t t h e t e x t . T h e y a r e s h o r t e x p l a n a t i o n s
o f i n t e r e s t i n g o r o f te n m i s u n d e r s t o o d p o i n t s r e l e v a n t t o t h e t o p i c a t h a n d .
< f l
T I P :  T i p s a dv is e t h e s t u d e n t o n t h e b e s t t e c h n i q u e s f o r a p p r o a c h i n g d i ff e r e n t p r o g r a m
ming
©
W A R N I N G
W a r n i n g s c a u t i o n s t u d e n t s a b o u t c e r t a i n Ja va f e a t u r e s , p r o g r a m m i n g   tech
n i q u e s , o r p r a c t ic e s t h a t c a n le a d t o m a l f u n c t i o n i n g p r o g r a m s o r l o s t d a t a .
In  t h e S p o t l i g h t .
  Main
  o f t h e c h a p t e r s p r o v i d e a n
  hi
 a
 p r o g r a m m i n g p r o b l e m , a l o n g w i t h d e t a i l e d ,
 stcp-
by-stcp  a n a l y s i s s h o w i n g t h e s t u d e n t h o w t o s o l v e i t .

V l d e o N o t e s *
  A
 scries of
 v i d e o s , d e v e l o p e d s p e c i fi c a l ly f o r t h i s b o o k , a re a v a i l a b l e a t w w w .
p c n r s o n h i g h e r e d . c o m / g j d d i s .
 Icons
 a pp e a r t h r o u g h o u t t h e t e x t a l e r t i n g t h e s t u d e n t t o v id e o s
abou t spec i f i c t op ics .
C a s e S t u d i e s .  C a s e s t u d ie s t h a t s i m u l a t e r e a l - w o r l d b u s in e s s a p p l i c a t i o n s a r c i n t r o
d u c e d t h r o u g h o u t t h e
 text
  a n d a r e p r o v i d e d o n t h e
 book's
  resou rce page a t w w w . p c a r s o n -
h i g h e r e d . c o m / g a d d i s .  
C o m m o n E r r o r s t o A v o i d .   F a c h c h a p t e r p r o v i d e s a
  list
 common
  e r r o r s a n d e x pl a n a
t i o n s   h o w t o a v o i d
  t h e m .
  I
  ach chap te r p resen ts a tho rough and d ive rse se t o f
r e v i e w q u e s t i o n s a n d e x e r c is e s . T h e y i n c l u d e M u l t i p l e C h o i c e a n d T r u e / F a l s e , F i n d th e
Frror,  A l g o r i t h m W o r k b e n c h , a n d S h o r t A n s w e r ,
P r o g r a m m i n g C h a l l e n g e s .
  F a c h c h a p t e r o f fe r s a p o o l o f p r o g r a m m i n g c h a l le n g e s
d e s i g n e d t o s o l i d i f y s t u d e n t s ' k n o w l e d g e o f t o p i c s a t h a n d .   In  most cases the ass ignmen ts
p r e s e n t r e a l - w o r l d p r o b l e m s t o
  be
 so lved.
S u p p l e m e n t s
Student On l ine Resources
M a n y s t u d e n t r e s ou r c es a re a v a i la b l e f o r t h i s b o o k f r o m
  the
 publisher. T h e f o l l o w i n g it e m s
a r e a v a i la b l e o n t h e C a d d i s S e r ie s r e s o u r c e p a g e a t   \ vw w , pc a r s o n h i g h c r c d . c o m / g a d d is :
• The source code fo r each  example p rog ram in the  bt>ok
• Access ro the  book s c o m p a n i o n   VidcoNotcs
• Appendixes   A - I .
  t he Con ten ts )
• A co l le c t ion o f seven va luab le Case Studies (l is ted in  the (Contents)
• Links to down load the Ja\a™  Fdition Development Kit
Links u>downlo,id n u m e r o u s p r o g r a m m i n g e n v i ro n m e n t s i n c l u d i n g j C R A S P ™ , E c lip se
T c x t P a d ™ , N c t B c a n s ™ ,  JCreator, a n d
Prelate xxi
I n t e g r a t e d D e v e l o p m e n t E n v i r o n m e n t ( ID E ) R e s o ur c e K it s
Professors  w h o a d o p t t h i s t e x t f o r t h e i r s t u d e n t s c a n a l s o o r d e r a n a c c o m p a n y i n g k i t t h a t
c o n t a i n s t h e fo l l o w i n g p o p u l a r Ja va de v e l o p m e n t e n v i r o n m e n t s :
Java™
 SF Development
  K i t f o r W i n d o w s *
Ec l ipse™ SDK
NetBcans™ IDI
j( ,RASI
T e x t P a d *
  T e xt E d i t o r f o r W i n d o w s *
The
  providd access to a Web site
  c o n t a i n i n g w r i t t e n a n d v id e o t u t o r ia l s f o r
  Retting
s t a rt e d in e a c h I D F .
  Fur
  o r d e r i n g i n f o r m a t i o n , p le a se c o n t a c t y o u r c a m p u s P e ar so n E d u c a
t i on rep resen ta t i ve o r v i s i t w w w . p e a r s o n h i g h e r e d . c o m / c s .  
O n l i n e P r a c t i c e a n d A s s e s s m e n t  with MyProgrammlngLab
M y P r o g r a m m i n g L a b h e l ps s t u d e n ts f u l l y g r a s p t h e
  l o g i c ,
  s e m a n t i c s , a n d s y n t a x o f p r o g r a m
m i n g . Through
 prac t i ce exerc ises and imm ed ia te , pe rsona l ized
 f e e d b a c k ,
  M y P r o g r a m m i n g L a b
i m p r o ve s t h e p r o g r a m m i n g c o m p e t e n c e o f b e g i n n i n g s t u de n t s , w h o o f t e n s tr u g g le w i t h t h e
bas i c concep ts
  and
  p a r a d i g m s o t p o p u l a r h i g h - l e v e l p r o g r a m m i n g l a n g u a g e s . A
  sell siiulv
a n d h o m e w o r k   t o o l ,  th e
 MyPrograminmgl
  a b c o u r s e c o n s i s ts o f h u n d r e d s o f s m a l l p r a c t i c e
problems
  o r g a n i z e d a r o u n d
  the
  s t r u c t u r e o t
  this
  t e x t b o o k . F o r s t u d e n t s , t h e s y s t e m a u t o
m a t i c a l l y d e t e c ts e r r o r s i n t h e lo g i c a n d s y n t a x o f th e i r c o d e s u b m i s s i o n s a n d o t t e r s t a r g e te d
h i n t s
  that
  e n a b l e s t u d e n ts t o fi g u r e o u t w h a t w e n t
 wrong—and  w h y .
  F o r i n s t r u c t o r s ,
 a
 c o m
p re h e n s i ve g r a d e b o o k t r a c k s c o rr e c t a n d i n c o r r e c t a n s w e r s a n d s t o r e s th e c o de i n p u t t e d b y
s tuden ts fo r rev iew.
M y P r o g r a m m i n g L a b is o f fe r e d t o u s e rs o f t h i s b o o k i n p a r t n e r s h i p w i t h  Turing's  C r a f t , t h e
m a k e r s o f t h e
 Code Lab
  i n t e r a c t iv e p r o g r a m m i n g e xe r c is e s y s te m . F o r a f u l l d e m o n s t r a t i o n ,
t o see fe e d b a c k f r o m i n s t r u c t o r s a n d s t u d e n t s , o r t o g e t s t a r te d u s i n g M y P r o g r a m m i n g L a b
i n y o u r c o u r s e , vi s i t w w w . m y p r o g r a m m i n g l a b . c o m . 
I ns t ruc tor Resources
Hie
  f o l l o w i n g s u p p l e m e n t s a r e a v a i l a b l e t o
 qualified
  i n s t r u c t o r s :
•  Questions
•  So lu t i ons fo r t he Prog ram m ing Cha l l enges
• Pow erPoint Presentat ion s l ides for each cha pter
C o m p u t e r i z e d l e s t K i n k s
Source
 Code
I  a b M a n u a l
S tuden t F i l es fo r t he Lab Manua l
S o l u t i o n s t o t h e L a b M a n u a l
V i s i t t h e P e a r s o n I n s t r u c t o r R e s o u r c e C e n t e r
  lwww.pearsonhighered.com/irc)
e-ma i l t o
 [email protected]
  f o r i n f o r m a t i o n o n h o w t o a c c e s s t h e s e r e s o u r c e s .
x x i i Preface
A c k n o w l e d g m e n t s
There have been many h elping hands in the development a nd p ublication of this book. We
would like to thank the following faculty reviewers for their helpful suggestions and
expertise:
R e v i e w e r s o f t h e F o u r t h E d i t i o n
|esse  Cecil
Nancy  I [arris
James Mailison University
A l a n J a c k s o n
Oaklami
  Comm unity College (Ml)
L a u r i e M u r p h y
Pad fie Lutheran University
Rev iewers o f Prev ious Ed i t ions
Ahmad Abuhcjlch
University of Wisconsin, Rnrr tails
C o l i n A r c h i b a l d
Valencia Community
Savannah State University
Virginia lech
A s o l t c B h a t t a c h a r y y a
Sabit  Xavier University, Chicago
Rucks County Community College
Indiana University
K i t W e l s h m a n
Xorthern  Virginia Comm unity College
Dcedcc I Icrrera
Lehigh Carbon Community  College
/ os Angeles Pierce  College
University
Mississippi State University
Peter John Polito
Spring teld ('allege
C h a r l e s R o b e r t   Putnam
California State University,  Northrtdge
  Preface
I a l s o w a n t  to  t h a n k e v e r y o n e a t P e a r s o n f o r m a k i n g t h e   Starting Out With  >  . . scries  so
success fu l .
  1
  h a ve w o r k e d s o c l o s e l y w i t h t h e te a m a t Pe a r s on t h a t I c o n s i d e r t h e m a m o n g
my c loses t f r i ends .
  I
  a m e x tr e m e l y f o r t u n a t e t o h a v e M i c h a e l
  I Iirsch
  (ioldstein
 as
m y e d i t o r s , a n d C h e l s e a
  Kharakozova
  as
 Editorial
 A s s i s t a n t . T h e y h a ve g u i d e d
 mc
  t h r o u g h
the p rocess o f rev i s ing [h i s   h o o k ,  a s w e l l a s m a n y o t h e r s . I   am  a l s o f o r t u n a t e t o h a v e
  Yc/
A la y a n a s M a r k e t i n g M a n a g e r , a n d   Kathryn Ferranti  as  Marketing  C o o r d i n a t o r . T h e i r h a r d
w o r k i s t r u l y i n s p i r i n g , a n d t h e y d o a g r e a t j o b g e t t i n g m y h o o k s o u t t o t h e
 academic  c o m
m u n i t y . T h e p r o d u c t i o n t e a m o f M a r i l y n L l o y d a n d Pa t B r o w n w o r k e d t ir e le s s ly t o
  make
  rea l i t y .
 T h a n k s t o y o u a l l
A b o u t t h e A u t h o r
 ,
  . s e r ie s o f t e x t b o o k s .
I le
  h a s n e a r l y t w o d ec a de s o f e x p e r ie n c e t e a c h i n g c o m p u t e r s c ie n c e c o u r s e s , p r i m a r i l y a t
I lay
 w o o d C o m m u n i t y C o l le g e .
 Tom is
  a
 highK
  a c c l a i m e d i n s t r u c t o r w h o w a s p r e v i o u s l y
s e le c te d a s t h e N o r t h C a r o l i n a C o m m u n i t y C o l l e g e
  "Teacher
  of the Year '* and has rece ived
t h e T e a c h i n g E x ce ll en c e a w a r d f r o m t h e N a t i o n a l I n s t i t u t e f o r S t a ff a n d O r g a n i z a t i o n a l
D e v e l o p m e n t . T h e   Starting Out
  With  .
  .
  ,
 s e rie s i n c lu d e s i n t r o d u c t o r y t e x t b o o k s c o v e r i n g
p r o g r a m m i n g l o g ic a n d d e s i g n , A l i c e , C + + ,  J a v a ™ ,  M i c r o s o f t ® V i s u a l B a s ic ® , M i c r o s o f t ®
 
I n t r o d u c t i o n t o
C o m pute rs a n d Java
TOPICS
1.2 Why Program?
Sof tware
W h a t
1-1
  I n t roduc t ion
l lns  b o o k  teaches  p r o g r a m m i n g u s i n g J a v a . | a v a   is a p o w e r f u l  language  t h a t r u n s o n p r a c
t i ca l l y eve ry type o f compute r . I t can be used to c rea te l a rge app l i ca t i ons o r
  small
  p r o g r a m s ,
k n o w n a s a p p l e t s , t h a t a r c p a r t o f  a W e b s i t e . B efo r e p lu n g i n g r i g h t i n t o l e a r n i n g J a va , h o w
e ve r , t h i s c h a p t e r w i l l r e v ie w t h e f u n d a m e n t a l s o f c o m p u t e r h a r d w a r e a n d s o f t w a r e , a n d
then   Like .i  b r o a d l o o k  ,n compuier  p r o g r a m m i n g   in  pMic ra l .
,7
-1
W h y P r o g r a m ?
C O N C E P T :
  C o m p u t e r s c a n d o m a n y di ff e r e n t j o b s b e c au s e t h ey a r e p r o g r a m m a b l e .
Ever\*
  p r o fe s s i o n h a s t o o l s t h a t m a k e t h e j o b e a sie r t o d o . C a r p e n t e r s
  use
  s a w s ,
a n d measuring  t a p e s . M e c h a n i c s u s e w r e n c h e s , s c r e w d r i v e r s , a n d r a t c h e t s .  Flectronics  t e c h
n i c i a n s u se p r o b e s , s c o p e s , a n d m e t e r s .
 Some
  t o o l s  arc  u n i q u e a n d c a n b e c a t e g o r i z e d a s
b e l o n g i n g t o a s i n g le p r o f e s s i o n . F o r e x a m p l e , s u r g e o n s h a v e c e r t a i n t o o l s t h a t
  arc
  des igned
s p e c i f ic a l l y f o r s u r g i c a l o p e r a t i o n s . T h o s e t o o l s p r o b a b l y
  aren*t
  u s e d b y a n y o n e o t h e r t h a n
s u r g e o n s . T h e r e a r e s o m e t o o l s , h o w e v e r , th a t a r e u s e d i n s e v e r a l p ro f e s s i o n s . S c r e w d r i ve r s ,
f o r i n s t a n c e , a r c u s e d b y m e c h a n i c s , c a r p e n t e r s , a n d m a n y o t h e r s .
T h e
 computer
  is a to o l used by so m an y p ro fess ions tha t i t can no t be eas i l y ca te go r ized . I t
can pe r fo rm so ma ny d i ffe re n t j ob s tha t i t is pe rhaps the mos t ve rsa t i le too l eve r made. To
 the
a c c o u n t a n t ,
 c o m p u t e r s b a l a n ce b o o k s , a n a l y z e p r o f i t s a n d
  losses,
  and p repare tax repo r t s .
lo the   Luton  worker,  mmputrrs control manufacturing  m a c h i n e s   .inJ tr.uk po.hu  (ion.
T o t h e m e c h a n i c , c o m p u t e r s a n a l yz e th e v a r i o u s s ys te m s i n a n a u t o m o b i l e a n d p i n p o i n t
h a r d - t o - f i n d p r o b l e m s . T h e c o m p u t e r c a n d o s u c h a w i d e v a r i e t y o f t a s k s b e c au s e i t c a n
 Computers
 an d |ava
be programmed.  I t is a  machine  s p e c i f i c a l ly d e s ig n e d t o f o l l o w i n s t r u c t i o n s . Be ca u se o f   the
computer's  p r o g r a m m a b i l i t y ,
  i t d o e s n ' t b e l o n g t o a n y s i n g le p r o f e s s i o n . C o m p u t e r s a r c
des igned to  do  w h a t e v e r j o b t h e i r p r o g r a m s , o r
  software*
  t e l l t h e m t o d o .
C o m p u t e r p r o g r a m m e r s d o a v e ry im p o r t a n t j o b . T h e y c r e a t e s o f t w a r e th a t t r a n s f o r m s
c o m p u t e r s i n t o
  the
  s p e c i a li ze d t o o l s o f m a n y tr a d e s . W i t h o u t p r o g r a m m e r s , t h e u se rs o f
computers  w o u l d  have  n o s o f t w a r e , a n d w i t h o u t s o f t w a r e , c o m p u t e r s w o u l d n o t b e a b le t o
d o a n y t h i n g .
C o m p u t e r p r o g r a m m i n g i s b o t h a n a r t a n d a s c ie n c e . I t is a n a r t b e c a us e
 even
  aspect of .1
p r o g r a m s h o u l d   be c a r e f u l l y d e s ig n e d * H e r e a r e a fe w o f t h e t h i n g s t h a t m u s t   be  des igned
f o r a n y r e a l - w o r l d c o m p u t e r p r o g r a m :
• The
  l o g i c a l f l o w o f t h e i n s t r u c t i o n s
• T he m a t h e m a t i c a l p r o c e du r e s
• T h e l a y o u t o f th e p r o g r a m m i n g st a te m e n t s
• The appearan ce o f t he sc reens


  The program's

  M a n u a l s , h e l p s y s te m s ,
 and/or
  o t h e r f o r m s o f w r i t t e n d o c u m e n t a t i o n
T h e r e i s a l s o a sc ie n c e t o p r o g r a m m i n g . Be ca us e p r o g r a m s r a r e l y w o r k r i g h t t h e f i rs t t i m e
t h e y a r e w r i t t e n , a l o t o f a n a l y z i n g , e x p e r i m e n t i n g , c o r r e c t i n g , a n d r e d e s i g n i n g is r e q u i r e d .
T h i s d e m a n d s p a t ie n c e a n d p e rs is t e n ce o f t h e p r o g r a m m e r . W r i t i n g s o f t w a r e d e m a n d s d is c i
p l i n e a s  w e l l.  P r o g r a m m e r s m u s t l e a r n s p e c ia l la n g u a g e s s u c h a s
 Java
  b e c au s e c o m p u t e r s d o
n o t u n d e r s t a n d I n g l i s h o r o t h e r h u m a n l a n g u a g e s . P r o g r a m m i n g l an g u a g e s h a ve s t r i c t ru l e s
t h a t m u s t be c a r e f u l l y f o l l o w e d .
B o t h th e a r ti s t ic a n d s c ie n t ifi c n a t u r e o f p r o g r a m m i n g m a k e s w r i t i n g c o m p u t e r s o f t w a r e
like  d e s i g n i n g a c a r : B o t h ca r s a n d p r o g r a m s s h o u l d b e f u n c t i o n a l , e f f ic i e n t , p o w e r f u l ,  easy
t o use , an d p leas ing to l oo k a t ,
13  Com puter Systems: Ha rdw are and Software
C O N C E P T : A l l
  c o m p u t e r s y s t e m s c o n s i s t o f s i m i l a r h a r d w a r e d e v i c e s a n d s o f t w a r e
c o m p o n e n t s .
H a r d w a r e
Hardware  r e fe r s t o th e p h y s i c a l c o m p o n e n t s t h a t a c o m p u t e r is m a d e o f . A
  c o m p u t e t;
 a s w e
g e n e r a l l y t h i n k o f i t , is n o t a n i n d i v i d u a l d e v ic e , b u t a s ys t e m o f d e v ic e s . L i k e t h e i n s t r u
m e n t s i n a s y m p h o n y o r c h e s t r a , e a c h d e v i c e pl a y s i t s o w n p a r t . A t y p i c a l c o m p u t e r s y s te m
c o n s is ts o f th e f o l l o w i n g m a j o r c o m p o n e n t s :
• T h e c e n t r a l p r o c e s s in g u n i t
  (CPLU
• M a i n m e m o r y
• Secondary s to rage dev ices
• Inp u t dev ices
• O u tp u t dev ices
 
F i g u r e
'
t
Stconduy
SaonpOtvCM
I  c t s take  a  clover  l ook a t each o f t hese dev ices .
The CPU
At the hea r t o f a compute r i s i t s   central processing  unit* o r  CPU.  T h e
 (TMJ s
  j ob is t o fe t ch
i n s t r u c t i o n s , f o l l o w   the  i n s t r u c t i o n s , a n d p r o d u c t   some  resu l t i ng da ta . I n te rn a l l y^  the  cen t ra l
processing
 u n i t c o n s is t s o f t w o p a r t s :
 the
 control
  unit
  logic
  unit (ALU).
T he c o n t r o l u n i t c o o r d in a t e s a l l o f t h e c o m p u t e r ' s o p e r a t i o n s .
  It is
  respons ib le fo r de te rm in
i n g w h e r e t o g et t he n e x t i n s t r u c t i o n a n d r e g u l a t i n g t h e o t h e r m a j o r
  components
  with
  co n t r o l s i gna ls . The a r i t hm e t i c an d log i c u n i t , as i t s name sugges ts , is des igned to
p e r f o r m m a t h e m a t i c a l o p e r a t i o n s . T h e o r g a n i z a t i o n o f th e  CiPU  is show n in F igu re   1*2.
F i g u r e
  1 - 2 T h e o r g a n i z a t i o n o f t h e   CPU
Inst ruct ion
A p r o g r a m i s
 .1
  s e q ue n c e o f i n s t r u c t i o n s s t o r e d i n th e c o m p u t e r ' s
 m e m o r y.
 W h e n a c o m p u t e r
is
  running
 the CPU is
  in
  a p ro c e s s k n o w n f o r m a l l y a s t h e   fetch/decode/
execute cycle. T he s teps i n the
  fctch/decodc/cxccutc
 
 Computers
 an d |ava
Vetch   T h e C P U 's c o n t r o l u n i t f e tc h e s , f r o m m a i n
  m e m o r y ,
  t h e n e x t i n s t r u c t i o n i n   the
s e qu e n ce o f p r o g r a m i n s t r u c t i o n s .
Decode   T h e i n s t r u c t i o n i s e n c o d e d i n t h e f o r m o f a n u m b e r . T h e c o n t r o l u n i t de c o de s
  the
i n s t r u c t i o n a n d g e n e r a te s a n e l e c t r o n i c s i g n a l .
Execute   T h e s i g n a l is r o u t e d t o t h e a p p r o p r i a t e c o m p o n e n t o f t h e c o m p u t e r (s u c h a s t h e
A L U ,  a d i s k d r i v e , o r s o m e o t h e r d e v i c e ) . T h e s i g n a l ca u s es t h e c o m p o n e n t t o
p e r f o r m a n o p e r a t i o n .
These
 *teps
  a re r e p e a t e d a s l o n g a s t h e re a r e in s t r u c t i o n s t o p e r f o r m .
Main  M e m o r y
Commonly
  k n o w n a s  random-access  memory,  o r
  J M M ,
  computer's
  m a i n m e m o r y i s a
d e v i c e t h a t h o l d s i n f o r m a t i o n .
  S p e u h i a l K ,
  K \ \ 1 h o l d s th e s e qu e nc e s o f i n s t r u c t i o n s i n
  the
p r o g r a m s t h a t a r e r u n n i n g a n d
  the
  d a t a t h o s e p r o g r a m s   are  u s i n g .
M e m o r y is d i v i d e d i n t o s e c t io n s t h a t h o l d an e q u a l a m o u n t o f d a t a .   I.ich s e c t i o n
  is made
 o f
e igh t "sw i t ches** tha t may
  be
  e it h e r o n o r o f f . A s w i t c h
  in
  t he on pos i t i on usua l l y rep resen ts
t h e n u m b e r   I,  whereas a sw i t ch i n t he o f f pos i t i on usua l l y represen ts the number 0 .  The c o m
pu te r s to res da ta by se t t i ng the sw i t ches i n a  memon  l o c a t i o n t o a p a t t e r n t h a t r e pr e s e n ts a
c h a r a c t e r o r a n u m b e r . E a c h
 of
  t h e s e s w i t c h e s i s k n o w n a s a hit*  w h i c h s t a n d s f o r
  binary
digit*  l a t h s e c tio n o f m e m o r y , w h i c h is a c o l le c t i o n o f e i g h t
  b i t s ,
  i s k n o w n a s a  byte* E a c h
byte is assigned
  a u n i qu e n u m b e r k n o w n a s a n address.  I
 he
  a dd re s s e s a re o r d e r e d f r o m
lowe s t t o h ighe s t . A by te is iden t i f i e d by i t s address   in  m u c h t h e s a m e w a y a po s t o f fi c e b o x
is iden t i f i ed by an address ,   hgure  1-1 sho ws a se ries o f by tes   with  the i r addresses. In the
i l l u s t r a t i o n , s a m p l e d a ta i s s t o r e d in m e m o r y . T h e n u m b e r
  149 is
  s t o r e d i n t h e b y t e a t
address
  I {>,
 an d the num ber 72 is s to re d in t he by te a t address 2 i .
K A M i s u s u a l ly a vo l a t i l e t y pe o f
  m e m o r y ,
 u s e d o n l y f o r t e m p o r a r y s t o r a g e . W h e n t h e c o m
p u t e r i s t u r n e d o f f , t h e c o n t e n t s o f R A M a r e e r a s e d .
Figure 1-3
  M e m o r y b yt e s a n d t h e i r a d dr e s s e s
H |U UJ
u> hi  h|]
  ri
  p
•J
id
HI
S e c o n d a r y S t o r a g e
S e c o n d a r y s t o r a g e i s a t y p e o f m e m o r y t h a t c a n
  hold
  d a t a f o r l o n g p e r i o d s o f
  time—even
when  t h e r e i s n o p o w e r t o th e  computer,  F r e q u e n t l y u s ed p r o g r a m s a r c s t o r e d in s e c o n d a r y
m e m o r y a n d l o a d e d i n t o m a i n m e m o r y a s n e e de d . I m p o r t a n t d a t a , s u ch
 .is
 w o r d p r o c e s s in g
d o c u m e n t s , p a y r o l l d a t a ,
 .ind
  i nve n to ry f i gu res , is saved to secon dary s to rage as   w e l l .
T he m o s t c o m m o n t y pe o f s e c o n d a r y s t o r a g e d e vi c e is t h e di s k d r i v e . A   disk drive  s to res
d a t a b y
 magnetically
 e n c o d i n g i t o n t o a c i r c u l a r d i s k. Hard  drives*  w h i c h a r e th e m o s t c o m
m o n t yp e o f d i s k d r i v e s , a r e c a p a b le o f s t o r i n g v e r y l a rg e a m o u n t s o f da t a a n d c a n a cc es s
d a t a q u i c k l y . M o s t c o m p u t e r s h a v e a h a r d d r iv e m o u n t e d i n s id e th e i r c a s e . E x t e r n a l h a r d
 
 S ystems: Hardware a nd S of tware
Fxtcrn.il  h a r d drives c a n  be  u s e d t o c r e a t e b a c k u p c o p i e s o f i m p o r t a n t d a t a o r t o  move d a t a
t o a n o t h e r
  computer.
I n a d d i t i o n t o e x t e r n a l h a r d d r i v e s , m a n y t yp e s o f d e vi c e s h a ve b e e n c r e a t e d f o r
  copying
d a t a , a n d f o r m o v i n g i t t o o t h e r c o m p u t e r s . F o r m a n y y e a rs fl o pp y   disk  d r i ve s w e r e p o p u l a r .
A  floppy disk drive  reco rds da ta on to a sma l l f l oppy
  d i s k ,
  w h i c h c a n b e re m o v e d f r o m t h e
d r i v e . F l o p p y d i s ks h a v e m a n y d i s a d v a n t a g e s , h o w e v e r . T h e y h o l d o n l y a s m a l l   amount  o f
d a t a ,
 an d per fo rm ve ry s low ly . F loppy d isk d r ives a re ra re ly used no w , i n favo r o f supe r io r
devices such as USB dr ives.  USB drives  a r e s m a l l de v ic e s t h a t p l u g   into  th e  computers  USB
(Un ive rsa l Se r ia l Bus) po r t , and appear to the sys tem as a d i sk d r ive . These d r ives do no t
a c t u a l l y c o n t a i n a d is k , h o w e v e r . T h e y s t o r e d a t a i n a s pe c i a l t y pe o f m e m o r y k n o w n a s   flash
  USB dr ives
 arc
  i n e x p e n s i v e , r e l i a b l e , a n d s m a l l e n o u g h t o
 be
 c a r r i e d i n y o u r p o c k e t .
Op t i ca l dev ices such as the
  (7) (compact disci
  a n d
  the DVD
  (d ig i ta l versat i le d isc) are a lso
p o p u l a r f o r d a t a s t o r a g e . D a t a i s n o t r e c o r d e d m a g n e t i c a l l y o n a n o p t i c a l
  d i s c ,
  bu t i s
 scries
 o f p i t s on the d isc s u r face . C D an d D VD dr ives use a lase r to de tec t t he
p i ts a n d t h u s r e a d th e e n c o d e d d a t a . O p t i c a l d is c s h o l d l a rg e a m o u n t s o f d a t a , a n d b e ca u se
r e c o r da b l e C D a n d D V D d ri ve s a re n o w c o m m o n p l a c e , t h e y m a ke a g o o d m e d i u m f o r
c r e a t i n g b a c k u p
 copies
  is
 a n y d a t a (h e c o m p u t e r c o l l e c t s f r o m t h e o u t s i d e w o r l d . T h e d e v ic e t h a t c o l l e c ts t h e
da ta and sends i t t o t he co m pute r i s ca l l ed an
  input
  devne.  C o m m o n i n p u t de v ic e s a r e t h e
k e y b o a r d ,
  m o u s e , s c a n n e r , a n d d i g i t a l c a m e r a .
 Disk  d r i v e s ,
  o p t i c a l
  dr ives , and
  USB dr ives
can a l so be con s ide red inpu t dev ices because p rog ram s
  ,md
  d a t a a r e r e t r i e v e d f r o m
  them
a n d l o a d e d i n t o t h e
 computer's
  m e m o r y .
O u t p u t D e v i c e s
O u t p u t is a n y d a t a t h e c o m p u t e r s e n ds t o t h e o u t s i d e w o r l d .
 I t
  m igh t be a sa les rep or t , a l i s t
o f n a m e s , o r a  graphic  i m a g e . T h e d a t a i s s e nt t o a n o u t p u t d e v ic e , w h i c h f o r m a t s a n d p r e s
e n ts i t . C o m m o n o u t p u t d ev ic e s a re m o n i t o r s a n d p r in t e r s .
 Disk
  d r i v e s , U S B dr i v e s , a n d C D
r e c o r d e r s c a n a l s o   be  c o n s i d e r e d o u t p u t d e v ic e s b e c a u s e  the  C P U s e n d s d a t a t o t h e m i n
o rde r to
S o f t w a r e
A s p r e vi o u s ly m e n t i o n e d , s o f t w a r e r e f e rs t o t h e p r o g r a m s t h a t r u n o n a c o m p u t e r .
  I
 here a re
t w o g e n e r a l c a t e g o r ie s o f s o f t w a r e : o p e r a t i n g s ys t e m s a n d a p p l i c a t i o n s o f t w a r e . A n o p e r a t
i n g s y st e m i s a se t o f p r o g r a m s t h a t m a n a g e s t h e c o m p u t e r
 s
 h a r d w a r e d e v ic e s a n d c o n t r o l s
t h e i r p r o c e s s e s . M o s t a l l m o d e r n o p e r a t i n g s y s t e m s a r e m u l t i t a s k i n g , w h i c h m e a n s t h e y a r e
c a p a b l e o f r u n n i n g m u l t i p l e p r o g r a m s a t o n c e . T h r o u g h a te c h n i q u e c a ll e d   time  s h a r i n g , a
m u l t i t a s k i n g s y s t e m d i v i d e s t h e a l l o c a t i o n o f h a r d w a r e r e s o u r c e s a n d t h e a t t e n t i o n o f t h e
C P U a m o n g a l l th e e x e c u ti n g pr o g r a m s . U N I X , L i n u x , M a c O S , a n d W i n d o w s a r c m u l t i
t a s k i n g o p e r a t i n g s ys te m s .
A p p l i c a t i o n s o f t w a r e r e f e r s t o p r o g r a m s
  that
  m a k e t h e c o m p u t e r u s e f u l t o t h e u s e r. T h e s e
p r o g r a m s s o lv e s p e c if ic p r o b l e m s o r p e r f o r m g e n e r a l o p e r a t i o n s t h a t s a t i s fy t h e ne e ds o f t h e
user.
 Word
  proce ss ing , sp readshee t , an d da tabase packages a re a l l exam p les o f a pp l i ca t i on
s o f t w a r e .
  1
< *
C h e c k p o i n t
MyProiramminjUb*  wwu\myprogramminglabxom
1.1  W h y i s the computer used by so  nuny  di fferent people, in so man y d i fferent profess ions?
1.2  I,ist  t h e fi ve m a j o r h a r d w a r e c o m p o n e n t s o f   a c o m p u t e r s y st e m .
1 -3 I n t e r n a l l y , t h e C P U c o n s i s t s o f w h a t t w o u n i ts ?
1.4  De sc r ibe the s teps i n the fe t ch /decode/execu te cyc le .
1.5  Wh at is a m em ory address? Wh at i s i t s pu rpose?
1.6  Fxplain
  w h y c o m p u t e r s h a ve b o t h m a i n m e m o r y a n d s ec o n d a ry s t o r a g e .
1.7 Wh at does the term  multitasking  mean?
i
1.4  P r o g r a m m i n g L a n g u ag e s
C O N C E P T :   A p r o g r a m i s a s et  o l  i n s t r u c t io n s a c o m p u t e r f o l l o w s i n o r d e r t o p e r f o r m
a
  t a s k, \ p r o g r a m m i n g l a n g u a g e i s a s p e c ia l la n g u a g e
 used
c o m p u t e r
  p r o g r a m s .
What Is a Program?
C o m p u t e r s a r e d e s ig n e d t o f o l l o w i n s t r u c t i o n s . A c o m p u t e r p r o g r a m is a s et o f i n s t r u c t i o n s
t h a t e n a b l e th e c o m p u t e r t o s o lv e a p r o b l e m o r p e r f o r m a   t a s k .  I or  e x a m p l e , s u p po s e   wc
w a n t t h e   computer  t o c a l c u l a t e s o m e o n e  s g r o s s  pay. The  f o l l o w i n g is a li s t o f t h i n g s t h e
computer
  s h o u l d d o t o p e r f o r m
  this
  task.
1 .   a
2 .  A l l o w t h e u s er t o e n t e r th e n u m b e r o f h o u r s
  w o r k e d .
3 . On ce the use r en te rs a nu m be r , s to re i t i n
  memory
l .  Display
  a message on the sc reen : " I l ow m uch do you
  gel
  b o u r ? "
5 . A l l o w t h e u se r t o  enter  an hour ly pay ra te .
6 . On ce the use r en te rs a nu m be r , s to re i t i n
  memory
7 . O n c e b o t h t h e n u m b e r o f h o u r s w o r k e d a n d t h e h o u r l y p a y ra t e a r e e n t e r e d , m u l t i p l y
t he t w o
  numbers
  and s to re the resu l t i n memory .
8 . D i s p l a y a m e s sa g e o n t h e s cr ee n t h a t s h o w s t h e a m o u n t o f m o n e y e a r n e d . T h e m e s
s ag e m u s t i n c l u d e t h e r e s u l t o f t h e c a l c u l a t i o n p e r f o r m e d i n S t e p 7 .
C o l l e c t i ve l y , th e s e i n s t r u c t i o n s a r e c a l l e d a n  algorithm.  A n a l g o r i t h m i s a s et o f w e l l - d e f in e d
s te p s f o r p e r f o r m i n g a t a s k o r s o l v i n g a p r o b l e m . N o t i c e t h a t t he s e ste ps a re s e q u e n t i a l ly
o r d e r e d .
  Step
  I
  s h o u l d b e p e r fo r m e d b e f o r e S t e p 2, a n d s o f o r t h . I t is
 important
  t ha t t hese
i n s t r u c t i o n s b e p e r f o r m e d i n t h e i r p r o p e r se q u e n c e .
A l t h o u g h y o u a n d
  I
  m i g h t e a s il y u n d e r s t a n d t h e i n s t r u c t i o n s i n th e p a y - c a l c u l a t i n g a l g o
r i t h m , i t is n o t r e a d y t o b e e xe c u t e d o n a c o m p u t e r . A c o m p u t e r ' s C P U c a n o n l y p ro c e s s
i n s t r u c t i o n s t h a t a re w r i t t e n i n   machine
  language*
  I f y o u w e r e t o l o o k a t a m a c h i n e   l a n
g ua g e p r o g r a m , y o u w o u l d   sec a s t re a m o f b i n a r y n u m b e r s ( n u m b e r s c o n s i s t in g o f o n l y I s
a n d O s ). T h e b i n a r y n u m b e r s f o r m m a c h i n e l a n g u a ge i n s t r u c t i o n s , w h i c h t h e C P U i n t e r p re t s
as c o m m a n d s . I lere  i s a n e x a m p l e o f w h a t a m a c h i n e l an g u a g e i n s t r u c t i o n m i g h t l o o k l i k e :
1011010000000101
1.4  Programming Languages
A s y o u c a n i m a g i n e ,
  t h e
  p r o c e s s o f e n c o d i n g a n a l g o r i t h m i n m a c h i n e l a n g u a g e
  i s very
t e d io u s a n d d i f fi c u l t . I n a d d i t i o n , e a c h d i ff e r e n t t y p e o f C P U h as i ts o w n m a c h i n e l a n g u a g e .
I f y o u w r o t e a m a c h i n e l a n g u a g e p r o g r a m f o r c o m p u t e r A a n d t h e n w a n t e d t o r u n i t o n
c o m p u t e r B , w h i c h h a s a d if fe r e n t t y pe o f C P U , y o u w o u l d h a ve t o r e w r i t e th e p r o g r a m i n
c o m p u t e r
  IVs
 m a c h i n e l a n g u a g e .
P r o g r a m m i n g l a n g u a g e s , w h i c h u se w o r d s i n s t e a d o f n u m b e r s , w e r e i n v e n t e d t o e as e th e
ta s k o f p r o g r a m m i n g . A p r o g r a m c a n b e w r i t t e n i n a p r o g r a m m i n g l a n g u ag e , w h i c h is m u c h
e a s ie r t o u n d e r s t a n d t h a n m a c h i n e l a n g u a g e , a n d t h e n t ra n s l a t e d i n t o m a c h i n e l a n g u a g e .
P r o g ra m m e r s u se s o f t w a r e t o p e r f o r m t h i s t r a n s l a t i o n . M a n y p r o g r a m m i n g l an g u a g e s h a ve
b e e n c r e a t e d .
 Ta b ic I - 1
  l is t s a fe w o f th e w e l l - k n o w n o n e s .
T a b l e  1 -1  P r o g r a m m i n g l a n g u a g e s
L a n g u a g e
  D e s c r i p t i o n
HASH;
FORTRAN
Pascal
C
C + +
R u b y
Visual Basic
B e g i n n e rs A l l- p u r p o s e S y m b o l i c I n s t r u c t i o n C o d e i s a g e n e r a l -p u r p o s e , p r o c e
d u r a l p r o g r a m m i n g l a n g u a g e . I t w a s o r i g i n a l l y d e s ig n e d t o b e s i m p l e e n o u g h f o r
b e g i n n e r s t o l e a r n .
F O R m u l a T R A N s l a t o r i s a pr o c e d u r a l l a n gu a g e d e s ig n e d f o r p r o g r a m m i n g c o m
p l e x m a t h e m a t i c a l a l g o r i t h m s .
C o m m o n B us in e s s O r i e n t e d I a n g u a g e is a p r o c e d u r a l l a n g u a g e d e s ig n e d to r
bus iness app l i ca t ions .
Pascal is  •  s t r u c t u r e d , g e n e r a l - p u r po s e , p r o c e d u r a l l a n g u a g e de s ig n e d p r i m a r i l y
f o r t e a c h i n g p r o g r a m m i n g .
C i s a s t r u c t u r e d , g e n e r a l -p u r p o s e , p r o c e d u r a l l a n g u a g e d e v e lo p e d a t B e ll
L a b o r a t o r i e s .
B a se d o n t h e C l a n g u a g e , C + + o f fe r s o b j e c t - o r i e n t e d fe a t u r e s n o t f o u n d i n C .
C++ was a l so inven ted a : Be l l
  1
  a h o r a t o r i c s .
P r o n o u n c e d
  * C   s h a r p . "
  I t i s a l anguage inven ted by
  M i l r o s o f t
  f o r d e v e l o p i n g
a p p l n a t i o n s b as ed o n t he M i c r o s o f t , \ l I p l a t f o r m .
Java i s an ob jec t -o r ien ted language inven ted a t Sun Mic rosys tem s. I t may be used to
deve lop s tanda lone app l i ca t i ons tha t opera te on a s ing le compute r , app l i ca t ions
tha t run o ver the In te rne t f ro m a Web se rve r, an d apple ts tha t run i n a Web b rowser .
J a v a S c r ip t is a p r o g r a m m i n g l a n g u a g e t h a t c a n b e u s ed in a W e b s it e t o p e r f o r m
s i m p l e o p e r a t i o n s . D e s p i te i t s n a m e , J a v a S c r ip t i s n o t r e l a t e d t o J a v a .
A g e n e r a l - p u r p o s e p r o g r a m m i n g l a n g u a g e u s e d w i d e l y o n I n t e r n e t s e r v e r s .
A p r o g r a m m i n g l a n g u a g e u s e d p r i m a r i l y f o r d e v e l o p i n g W e b s e r ve r a p p li c a t i o n s
a n d d y n a m i c W e b p a ge s .
P y th o n i s a n o b j e c t - o r i e n t e d p r o g r a m m i n g l a n g u a g e u s e d i n b o t h b u s in e s s a n d
a c i d e m i a . M a n y p o p u l a r W e b s it e s c o n t a i n f e a t u r e s d e v e l o p e d i n P y t h o n .
Ruby is a s imp le bu t pow er fu l
  o b j e c t - o r ie n t e d
  prog ram m ing language. I t can be used
fo r a va r ie ty o f pu rposes , f rom sm a l l u t i l i t y p rog ram s to l arge Web a pp li ca t i ons .
 
  1
  I n t roduc t i on to Com pute rs and Java
A History of Java
In
  1991
  a
 team
  w a s f o r m e d a t S u n M i c r o s ys t e m s t o s p e c ul at e a b o u t t h e i m p o r t a n t t e c h n o
l o g i c a l
  trends
  t h a t m i g h t e m e rg e i n t h e n e a r f u t u r e . T h e t e a m , w h i c h w a s n a m e d t h e G re e n
T e a m ,
 c o n c l u d e d t h a t c o m p u t e r s w o u l d m e r g e w i t h c o n s u m e r a p p li a n c e s . T h e ir fi r s t p r o j e c t
w a s t o d e v e l o p a h a n d h e l d d e v i c e n a m e d " 7 ( p r o n o u n c e d s t a r s e v e n ) t h a t c o u l d b e u s e d t o
c o n t r o l a va r i e t y o f h o m e e n t e r t a i n m e n t d e v i c e s .
 In
  o r d e r fo r t h e u n i t t o w o r k ,
  it
  had to use
a p r o g r a m m i n g l a n g u a g e t h a t c o u l d b e pr o ce s s e d b y a l l t h e de v ic e s i t c o n t r o l l e d . T h i s p r e
s e n t e d a p r o b l e m b e c a u s e d i f fe r e n t b r a n d s o f c o n s u m e r d e v ic e s u se d if fe r e n t p r o c e s s o r s ,
e a c h w i t h i t s o w n m a c h i n e l a n g u a g e .
Because no such u n ive rsa l l anguag e ex i s te d , James G os l i ng , t he team 's lead eng inee r , c rea ted
o n e . P r o g r a m
w r i t t e n i n t h is l a n g u a g e , w h i c h w a s o r i g i n a l l y n a m e d O a k , w e re n o t t r a n s
l a ted i n to the mac h ine l angua ge o f a spec i fi c p rocesso r , bu t we re t ran s la te d
  into
  a n i n t e r m e
d i a t e l a n g u a g e k n o w n a s   byte voile.  A n o t h e r p r o g r a m w o u l d t h e n t r a n s l a t e t h e b y t e
  code
i n t o m a c h i n e l a n g u ag e
 that
  cou ld be execu ted by the processo r i n a spec i fi c consum er dev ice .
U n f o r t u n a t e l y , t h e t e c h n o l o g y d e v e l o p e d b y t h e G r e e n T e a m w a s a h e a d o f
  iis
  t i m e . N o c u s
t o m e r s c o u l d b e f o u n d , m o s t l y b e c a us e t h e
 computer-controlled
 c o n s u m e r a p p li a n c e i n d u s
t r y w a s ju s t b e g i n n i n g . B u t ra t h e r th a n a b a n d o n i n g t h e i r h a r d w o r k a n d m o v i n g o n
  toother
  team saw
  a n o t h e r o p p o r t u n i t y : t h e I n t e r n e t . T h e I n t e r n e t i s a p e rfe c t e n v i r o n
m e n t
  lo r
  a u n i v e r s a l p r o g r a m m i n g l a n g u a g e s uc h
 as
 O a k . I t c o n s is t s o f n u m e r o u s d i ff e r e n t
c o m p u t e r p l a t f o r m s c o n n e c t e d t o g e th e r
  in
  a s i n g le n e t w o r k .
To dem ons t ra te the e ffec t iveness o f i t s lang uag e , w h ic h w as rena m ed Java , t he team used  it  to
develop a
 named I
 l o tJ a v a , w a s a b l e t o d o w n l o a d a n d r u n s m a l l
Ja va p r o g r a m s k n o w n a s a p p l e ts .  This  g a ve t h e b r o w s e r t h e c a p a b i l i t y t o d is p l a y a n i m a t i o n
a n d in t e r a c t w i t h t h e u se r. l o t | a v a w a s d e m o n s t r a t e d a t t h e
  1995 SunWorld
  c o n f e r e n c e
before a  wowed  a u d i e n c e , l a t e r   the anntmnccment  w as  made that  N e t s c a p e w o u l d i n c o r p o
r a te J av a te c h n o l o g y i n t o i t s N a v i g a t o r b r o w s e r . O t h e r I n te r n e t c o m p a n i e s r a p i d l y f o l l o w e d ,
inc reas ing the accep tance and the i n f l uence o f t he Java language .   Today, Java   is very popu la r
fo r deve lop ing
 not
  on ly app le ts fo r t he In te rne t bu t a l so s tand-a lone app l i ca t i ons .
Java Appl icat ions and Applets
T h e re a r c t w o t y pe s o f p r o g r a m s t h a t m a y b e c re a t e d w i t h J a v a : a p p l i c a t i o n s a n d a p p l e t s .
A n a p p l i c a t i o n i s a s t a n d - a l o n e p r o g r a m t h a t r u n s o n y o u r c o m p u t e r . Y o u h a ve p r o b a b l y
used severa l app l i ca t i o ns a l ready , such as wo rd p roce sso rs , sp readshee ts , da tabase ma nag
e r s , a n d g r a p h i c s p r o g r a m s . A l t h o u g h   ).i\.\  n u \  be u s e d t o w r i t e t he s e t yp e s o f a p p l i c a t i o n s ,
o the r l anguages such as G,
 (.*+,
  and V isua l Bas ic a rc a l so used.
In the p rev ious sec t i on you l ea rned tha t Java may a l so be used to c rea te app le ts . The te rm
applet  r e fe r s t o a s m a l l a p p l i c a t i o n , i n t h e s a m e w a y t h a t t h e t e r m   piglet  re fe rs to a sma l l
p i g .  U n l i k e a p p l i c a t i o n s , a n a p p l e t is d e s ig n e d t o b e t r a n s m i t t e d o v e r
  the
  I n t e r n e t f r o m a
W e b s e r v e r, a n d th e n e x e c u t e d i n a W e b b r o w s e r . Ap p le t s a r e i m p o r t a n t b e c au s e t h e y ca n b e
u s e d t o e x t e n d t h e c a p a b i l it i e s o f a W e b p a g e s i g n i fi c a n t l y .
Web
  pa ge s a r e n o r m a l l y w r i t t e n i n H y p e r t e x t M a r k u p
  language
  ( H T M L ) . H T M L i s   l i m
i t e d ,  h o w e v e r , b e c a us e it m e r e l y de s c r ib e s t h e c o n t e n t a n d l a y o u t o f a
 Web
  p ag e . H T M L
d o c s n o t h a v e s o p h i s ti c a t e d a b i l it i e s s u c h a s p e r f o r m i n g m a t h c a l c u l a t i o n s a n d i n t e r a c t i n g
w i t h t h e   user.  A W e b d e s ig n e r c a n w r i t e a J av a a p p l e t t o p e r f o r m o p e r a t i o n s t h a t
  arc
1.5 Wh at Is a Program Ma de Of?
n o r m a l l y  performed b y a n a p p l i c a t i o n , a n d e m b e d i t   in  a  VC'cb s i te. When  someone v i s i t s t he
Web s i te ,
 t h e a p p l e t is d o w n l o a d e d t o t h e v i s i t o r 's b r o w s e r a n d e x e c u t e d .
Secur i ty
A n y  time  c o n t e n t is d o w n l o a d e d fr o m a  Web  se rve r to a v i s i t o r ' s compute r , secu r i t y i s an
i m p o r t a n t c o n c e r n . B ec au s e J a va is a fu l l - fe a t u r e d p r o g r a m m i n g l a n g u a g e , a t f i r s t y o u m i g h t
be  suspicious  o f a n y  Web s i te t h a t t r a n s m i t s a n a p p l e t t o y o u r c o m p u t e r . A f t e r a l l , c o u l d n ' t
a Java app le t
 do
  h a r m f u l t h i n g s , s u c h a s d e l e t i n g t h e c o n t e n t s o f t h e h a r d d r i v e o r t r a n s m i t
t i n g p r iv a t e i n f o r m a t i o n t o a n o t h e r c o m p u t e r ? F o r t u n a t e l y , t h e a n s w e r   is n o . W e b b r o w s e r s
r u n Ja v a a pp le t s in a se c u re e n v ir o n m e n t w i t h i n y o u r c o m p u t e r ' s m e m o r y a n d d o n o t a l l o w
t h e m t o a c ce ss r e s o u r c e s , s u c h a s a d is k d r i v e , t h a t a r e o u t s i d e t h a t e n v i r o n m e n t .
15  w h a t Is a Program M ade Of?
C O N C E P T :
  Nitre
  a r e c e r t a i n e l e m e n t s t h a i a r e c o m m o n
  10
 a l l p r o g r a m m i n g
l a n g u a g e * .
Language Elements
A l l p r o g r a m m i n g l a n g u a g e s h a v e
  some things m c o m m o n .  Tabic  1-2  l is t s t h e c o m m o n e le
m e n t s y o u w i l l f i n d
  in
Tab le 1 -2
  T h e c o m m o n el em e n t s o f a p r o g r a m m i n g la n g u a g e
L a n g u a g e
 Klement
  ^ _ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^
O p e r a t o r s
P u n c t u a t i o