Java Software Solutions: Foundations of Program Design / Edition 7

Paperback (Print)
Rent from
(Save 67%)
Est. Return Date: 06/22/2014
Buy Used
Buy Used from
(Save 40%)
Item is in good condition but packaging may have signs of shelf wear/aging or torn packaging.
Condition: Used – Good details
Used and New from Other Sellers
Used and New from Other Sellers
from $31.44
Usually ships in 1-2 business days
(Save 77%)
Other sellers (Paperback)
  • All (14) from $31.44   
  • New (7) from $81.68   
  • Used (7) from $31.44   


Introductory Programming / Java™
Read More Show Less

Editorial Reviews

Teaches beginning programmers how to design and implement high quality object-oriented software, updated to encompass the new features of the Java 2 platform as they apply to CS1/Introductory Programming topics. Applets and applications appear throughout the book to demonstrate computing concepts. Includes a new chapter addressing exceptions and I/O streams and expanded coverage of classes and objects, methods and parameter passing, object relationships, and class design, as well as new discussion of Swing components. Annotation c. Book News, Inc., Portland, OR (
Read More Show Less

Product Details

  • ISBN-13: 9780132149181
  • Publisher: Addison-Wesley
  • Publication date: 3/14/2011
  • Series: MyprogrammingLab Series
  • Edition description: Older Edition
  • Edition number: 7
  • Pages: 832
  • Sales rank: 254,134
  • Product dimensions: 7.30 (w) x 9.10 (h) x 1.20 (d)

Meet the Author

John Lewis
John Lewis is the co-author of the previous editions of the Java Software Solutions textbook, Java Software Structures, Java Foundations, and the Java Software Solutions textbook used for AP computer science classes.
Read More Show Less

Table of Contents

Preface v
Chapter 1 Introduction 1
1.1 Computer Processing 2
Software Categories 3
Digital Computers 4
Binary Numbers 7
1.2 Hardware Components 10
Computer Architecture 11
Input/Output Devices 12
Main Memory and Secondary Memory 13
The Central Processing Unit 17
1.3 Networks 20
Network Connections 20
Local-Area Networks and
Wide-Area Networks 22
The Internet 23
The World Wide Web 24
Uniform Resource Locators 25
1.4 The Java Programming Language 26
A Java Program 27
Comments 29
Identifiers and Reserved Words 31
White Space 33
1.5 Program Development 36
Programming Language Levels 36
Editors, Compilers, and Interpreters 38
Development Environments 40
Syntax and Semantics 41
Errors 42
1.6 Object-Oriented Programming 44
Problem Solving 45
Object-Oriented Software Principles 46

Chapter 2 Data and Expressions 57
2.1 Character Strings 58
The print and println Methods 58
String Concatenation 60
Escape Sequences 63
2.2 Variables and Assignment 65
Variables 65
The Assignment Statement 67
Constants 69
2.3 Primitive Data Types 71
Integers and Floating Points 71
Characters 73
Booleans 74
2.4 Expressions 75
Arithmetic Operators 75
Operator Precedence 76
Increment and Decrement Operators 80
Assignment Operators 81
2.5 Data Conversion 83
Conversion Techniques 85
2.6 Interactive Programs 87
The Scanner Class 87
2.7 Graphics 92
Coordinate Systems 92
Representing Color 94
2.8 Applets 95
Executing Applets Using the Web 98
2.9 Drawing Shapes 99
The Graphics Class 99
Software Failure: NASA Mars Climate Orbiter and Polar Lander 111

Chapter 3 Using Classes and Objects 113

3.1 Creating Objects 114
Aliases 116
3.2 The String Class 118
3.3 Packages 122
The import Declaration 124
3.4 The Random Class 126
3.5 The Math Class 129
3.6 Formatting Output 132
The NumberFormat Class 132
The DecimalFormat Class 134
The printf Method 135
3.7 Enumerated Types 138
3.8 Wrapper Classes 141
Autoboxing 143
3.9 Components and Containers 143
Frames and Panels 144
3.10 Nested Panels 148
3.11 Images 151

Chapter 4 Writing Classes 159
4.1 Classes and Objects Revisited 160
4.2 Anatomy of a Class 162
Instance Data 167
UML Class Diagrams 167
4.3 Encapsulation 169
Visibility Modifiers 170
Accessors and Mutators 171
4.4 Anatomy of a Method 172
The return Statement 174
Parameters 175
Local Data 175
Bank Account Example 176
4.5 Constructors Revisited 181
4.6 Graphical Objects 182
4.7 Graphical User Interfaces 191
4.8 Buttons 192
4.9 Text Fields 196
Software Failure: Denver Airport Baggage Handling System 205

Chapter 5 Conditionals and Loops 207
5.1 Boolean Expressions 208
Equality and Relational Operators 209
Logical Operators 210
5.2 The if Statement 213
The if-else Statement 216
Using Block Statements 219
Nested if Statements 223
5.3 Comparing Data 226
Comparing Floats 226
Comparing Characters 227
Comparing Objects 228
5.4 The while Statement 230
Infinite Loops 234
Nested Loops 236
The break and continue Statements 239
5.5 Iterators 241
Reading Text Files 242
5.6 The ArrayList Class 245
5.7 Determining Event Sources 248
5.8 Check Boxes and Radio Buttons 251
Check Boxes 251
Radio Buttons 255
Software Failure: Therac-25 267

Chapter 6 More Conditionals and Loops 269
6.1 The switch Statement 270
6.2 The Conditional Operator 274
6.3 The do Statement 275
6.4 The for Statement 279
The for-each Loop 282
Comparing Loops 284
6.5 Drawing with Loops and Conditionals 285
6.6 Dialog Boxes 291

Chapter 7 Object-Oriented Design 301
7.1 Software Development Activities 302
7.2 Identifying Classes and Objects 303
Assigning Responsibilities 305
7.3 Static Class Members 305
Static Variables 306
Static Methods 306
7.4 Class Relationships 310
Dependency 310
Dependencies Among Objects
of the Same Class 310
Aggregation 316
The this Reference 320
7.5 Interfaces 322
The Comparable Interface 327
The Iterator Interface 328
7.6 Enumerated Types Revisited 329
7.7 Method Design 332
Method Decomposition 333
Method Parameters Revisited 338
7.8 Method Overloading 343
7.9 Testing 345
Reviews 346
Defect Testing 346
7.10 GUI Design 349
7.11 Layout Managers 350
Flow Layout 352
Border Layout 356
Grid Layout 359
Box Layout 361
7.12 Borders 365
7.13 Containment Hierarchies 369
Software Failure: 2003 Northeast Blackout 377

Chapter 8 Arrays 379
8.1 Array Elements 380
8.2 Declaring and Using Arrays 381
Bounds Checking 384
Alternate Array Syntax 389
Initializer Lists 389
Arrays as Parameters 390
8.3 Arrays of Objects 392
8.4 Command-Line Arguments 402
8.5 Variable Length Parameter Lists 404
8.6 Two-Dimensional Arrays 408
Multidimensional Arrays 412
8.7 Polygons and Polylines 413
The Polygon Class 416
8.8 Mouse Events 418
8.9 Key Events 427
Software Failure: LA Air Traffic Control 441

Chapter 9 Inheritance 443
9.1 Creating Subclasses 444
The protected Modifier 447
The super Reference 450
Multiple Inheritance 453
9.2 Overriding Methods 455
Shadowing Variables 457
9.3 Class Hierarchies 458
The Object Class 460
Abstract Classes 461
Interface Hierarchies 463
9.4 Visibility 463
9.5 Designing for Inheritance 466
Restricting Inheritance 467
9.6 The Component Class Hierarchy 468
9.7 Extending Adapter Classes 471
9.8 The Timer Class 475
Software Failure: Ariane 5 Flight 501 485

Chapter 10 Polymorphism 487
10.1 Late Binding 488
10.2 Polymorphism via Inheritance 489
10.3 Polymorphism via Interfaces 502
10.4 Sorting 504
Selection Sort 505
Insertion Sort 511
Comparing Sorts 512
10.5 Searching 513
Linear Search 513
Binary Search 515
Comparing Searches 519
10.6 Designing for Polymorphism 519
10.7 Event Processing 521
10.8 File Choosers 522
10.9 Color Choosers 525
10.10 Sliders 527

Chapter 11 Exceptions 537
11.1 Exception Handling 538
11.2 Uncaught Exceptions 539
11.3 The try-catch Statement 540
The finally Clause 544
11.4 Exception Propagation 545
11.5 The Exception Class Hierarchy 549
Checked and Unchecked Exceptions 552
11.6 I/O Exceptions 553
11.7 Tool Tips and Mnemonics 557
11.8 Combo Boxes 564
11.9 Scroll Panes 569
11.10 Split Panes 572

Chapter 12 Recursion 583
12.1 Recursive Thinking 584
Infinite Recursion 584
Recursion in Math 585
12.2 Recursive Programming 586
Recursion vs. Iteration 589
Direct vs. Indirect Recursion 589
12.3 Using Recursion 590
Traversing a Maze 591
The Towers of Hanoi 596
12.4 Recursion in Graphics 601
Tiled Pictures 601
Fractals 604

Chapter 13 Collections 617
13.1 Collections and Data Structures 618
Separating Interface from Implementation 618
13.2 Dynamic Representations 619
Dynamic Structures 619
A Dynamically Linked List 620
Other Dynamic List Representations 625
13.3 Linear Data Structures 627
Queues 627
Stacks 628
13.4 Non-Linear Data Structures 631
Trees 631
Graphs 632
13.5 The Java Collections API 634
Generics 634

Appendix A Glossary 641
Appendix B Number Systems 665
Appendix C The Unicode Character Set 673
Appendix D Java Operators 677
Appendix E Java Modifiers 683
Appendix F Java Coding Guidelines 687
Appendix G Java Applets 693
Appendix H Regular Expressions 695
Appendix I Javadoc Documentation Generator 697
Appendix J The PaintBox Project 703
Appendix K GUI Events 715
Appendix L Java Syntax 719
Appendix M The Java Class Library 733
Appendix N Answers to Self-Review Questions 735
Index 789

Read More Show Less

Customer Reviews

Average Rating 3
( 8 )
Rating Distribution

5 Star


4 Star


3 Star


2 Star


1 Star


Your Rating:

Your Name: Create a Pen Name or

Barnes & Review Rules

Our reader reviews allow you to share your comments on titles you liked, or didn't, with others. By submitting an online review, you are representing to Barnes & that all information contained in your review is original and accurate in all respects, and that the submission of such content by you and the posting of such content by Barnes & does not and will not violate the rights of any third party. Please follow the rules below to help ensure that your review can be posted.

Reviews by Our Customers Under the Age of 13

We highly value and respect everyone's opinion concerning the titles we offer. However, we cannot allow persons under the age of 13 to have accounts at or to post customer reviews. Please see our Terms of Use for more details.

What to exclude from your review:

Please do not write about reviews, commentary, or information posted on the product page. If you see any errors in the information on the product page, please send us an email.

Reviews should not contain any of the following:

  • - HTML tags, profanity, obscenities, vulgarities, or comments that defame anyone
  • - Time-sensitive information such as tour dates, signings, lectures, etc.
  • - Single-word reviews. Other people will read your review to discover why you liked or didn't like the title. Be descriptive.
  • - Comments focusing on the author or that may ruin the ending for others
  • - Phone numbers, addresses, URLs
  • - Pricing and availability information or alternative ordering information
  • - Advertisements or commercial solicitation


  • - By submitting a review, you grant to Barnes & and its sublicensees the royalty-free, perpetual, irrevocable right and license to use the review in accordance with the Barnes & Terms of Use.
  • - Barnes & reserves the right not to post any review -- particularly those that do not follow the terms and conditions of these Rules. Barnes & also reserves the right to remove any review at any time without notice.
  • - See Terms of Use for other conditions and disclaimers.
Search for Products You'd Like to Recommend

Recommend other products that relate to your review. Just search for them below and share!

Create a Pen Name

Your Pen Name is your unique identity on It will appear on the reviews you write and other website activities. Your Pen Name cannot be edited, changed or deleted once submitted.

Your Pen Name can be any combination of alphanumeric characters (plus - and _), and must be at least two characters long.

Continue Anonymously
Sort by: Showing all of 8 Customer Reviews
  • Anonymous

    Posted March 10, 2003

    This is one of the best for Java application programs

    So far, I've read this book, Teach yourself Java and Java How to program by Deitel, Deitel. As far as a beginner is concerned, this is the best book I've found. I used this book in my Java class and I had a wonderful time with this book and I made such great projects by extending some of the programs provided by this book. The book by Deitel, Deitel explains so poorly about object oriented concept. It definately confuses the beginners. I believe definately beginners will have hard time to get the concept of it. On the other hand, This book explains the object oriented concept beautifully. I absolutely recommend this book to everybody who wants to learn Java. By the way, one of the biggest disadvantages of this book is that this book does not explain as much as the book by Deitel, Deitel does about Swing components and Java applets.

    0 out of 1 people found this review helpful.

    Was this review helpful? Yes  No   Report this review
  • Anonymous

    Posted July 25, 2001

    Mixed Comments

    This is my course book in Adelaide, the only problem i have with this beautifully scripted book is that the price is too high. Yes! you can get better books under the concern book price.

    Was this review helpful? Yes  No   Report this review
  • Anonymous

    Posted February 23, 2001

    This book is horrible for a beginner

    I am not a beginning programmer and this book confused me. My Java class uses this book and half of them have dropped out in the first few weeks. Don't blame my teacher. He doesn't have a good book to teach from.

    Was this review helpful? Yes  No   Report this review
  • Anonymous

    Posted January 18, 2001

    There are better books out there for that money!

    There are a lot more books on Java which have far more content and explain concepts much better than this book, for as much or lower money. Especially in the later chapters of this book, the examples have so much code whose details are not explained. This causes a beginner to spend a lot of time analyzing all by himself and get confused. I found that another book (Deitel&Deitel) which is priced about the same as this book, covers almost double the topics (including a lot of advanced concepts)and strives extraordinarily to spell out every detail that a beginner would need. The other book also comes with a CD-ROM containing 4 critical applications, whereas Lewis&Loftus' did not!

    Was this review helpful? Yes  No   Report this review
  • Anonymous

    Posted October 9, 2000

    Beginner-Intermediate: Keep This Book Handy

    Dr. Lewis, a computer science professor, has written this book for students. Many of his students and colleagues have provided feedback and with each new edition more improvements are made. Although I never had the opportunity to use this book in the classroom, I have found it to be a very handy Java reference. I have picked up Java in a work environment with no formal training so this book has helped to fill in missing pieces. It is wonderfully organized and very straightforward. I would highly recommend this book to anyone whether a beginner or someone who just needs to be reminded of some basics every now and then! I am eagerly awaiting the next version in November.

    Was this review helpful? Yes  No   Report this review
  • Anonymous

    Posted June 29, 2000

    Good introduction book

    I used this book in my introductory java class, and it helped me a lot, I recommend this book for begginers.

    Was this review helpful? Yes  No   Report this review
  • Anonymous

    Posted February 28, 2000

    2nd edition MUCH better than the first

    The first edition was terrible, but the second edition is good. I like how the book has been reorganized, and it now covers Java 2. Note that the audience for this book is the beginning programmer. The book is not designed for experienced programmers who need to learn Java. Also, the table of contents listed on this web page is for the first edition, not the second.

    Was this review helpful? Yes  No   Report this review
  • Anonymous

    Posted March 28, 2013

    No text was provided for this review.

Sort by: Showing all of 8 Customer Reviews

If you find inappropriate content, please report it to Barnes & Noble
Why is this product inappropriate?
Comments (optional)