Chapter 1 Compiling a Java program, p. 20 Writing an algorithm, p. 25 Recognizing a hidden error, p. 28 Another applet example, p. 38 Writing an algorithm for Project 5, p. 42
Chapter 2 Another sample program, p. 61 Writing arithmetic expressions and statements, p. 72 Processing strings, p. 87 Pitfalls involving nextLine(), p. 97 Solving a conversion problem, p. 130 Solution to Project 13, p. 132
Chapter 3 Using multibranch if-else statements, p. 159 Using switch statements, p. 177 Solution to Project 2, p. 190 Responding to user input, p. 190
Chapter 4 Using nested while loops, p. 213 Comparing loop statements, p. 221 Debugging a loop, p. 238 Solution to Project 9, p. 252 Nesting for statements, p. 253
Chapter 5 Writing and involving methods, p. 292 Investigating public and private access, p. 300 Objects and references, p. 326 Exploring parameters of class types, p. 345 Developing a solution to Project 8, p. 363 Solution to Project 12, p. 366
Chapter 6 Writing construction, p. 387 Using static and non-static methods, p. 396 Writing and invoking overloaded methods, p. 433 Solving a similar problem, p. 468 Solution to Project 12, p. 469
(Continued on Inside Back Cover)
Through the power of practice and immediate personalized
feedback, MyProgrammingLab improves your performance.
Learn more at www.myprogramminglab.com
get with the programming
www.myprogramminglab.com
This page intentionally left blank
An Introduction to Problem Solving & Programming
™
This page intentionally left blank
Prentice Hall Boston Columbus Indianapolis New York San Francisco Upper Saddle River
Amsterdam Cape Town Dubai London Madrid Milan Munich Paris Montreal Toronto Delhi Mexico City São Paulo Sydney Hong Kong Seoul Singapore Taipei Tokyo
An Introduction to Problem Solving & Programming
Walter Savitch University of California, San Diego
Contributor
Kenrick Mock University of Alaska Anchorage
6th edition™
Credits and acknowledgments borrowed from other sources and reproduced, with permission, in this textbook appear on appropriate page within text.
Microsoft® and Windows® are registered trademarks of the Microsoft Corporation in the U.S.A. and other coun- tries. Screen shots and icons reprinted with permission from the Microsoft Corporation. This book is not spon- sored or endorsed by or affiliated with the Microsoft Corporation.
Copyright © 2012, 2009, 2005, 2004, 2001 Pearson Education, Inc., publishing as Prentice Hall, 1 Lake Street, Upper Saddle River, New Jersey, 07458. All rights reserved. Manufactured in the United States of America. This publication is protected by Copyright, and permission should be obtained from the publisher prior to any prohibited reproduc- tion, storage in a retrieval system, or transmission in any form or by any means, electronic, mechanical, photocopy- ing, recording, or likewise. To obtain permission(s) to use material from this work, please submit a written request to Pearson Education, Inc., Permissions Department, 1 Lake Street, Upper Saddle River, New Jersey, 07458
Many of the designations by manufacturers and sellers to distinguish their products are claimed as trademarks. Where those designations appear in this book, and the publisher was aware of a trademark claim, the designations have been printed in initial caps or all caps.
Library of Congress Cataloging-in-Publication Data LIBRARY OF CONGRESS CATALOGING-IN-PUBLICATION DATA ON FILE
10 9 8 7 6 5 4 3 2 1—EB—15 14 13 12 11
ISBN 10: 0-132-16270-9 ISBN 13: 978-0-132-16270-8
Editorial Director: Marcia Horton Editor-in-Chief: Michael Hirsch Acquisitions Editor: Matt Goldstein Editorial Assistant: Chelsea Bell Director of Marketing: Patrice Jones Marketing Manager: Yezan Alayan Marketing Coordinator: Kathryn Ferranti Managing Editor: Jeff Holcomb Production Project Manager: Heather McNally Senior Operations Supervisor: Alan Fischer Operations Specialist: Lisa McDowell Art Director: Kristine Carney
Text Designer: Jerilyn Bockorick, Nesbitt Graphics, Inc. Cover Designer: Rachael Cronin Manager, Rights and Permissions: Michael Joyce Text Permission Coordinator: Jennifer Kennett Cover Art: Aron Jungermann / Getty Images Media Director: Daniel Sandin Media Project Manager: Wanda Rockwell Full-Service Project Management: Rose Kernan, Nesbitt Graphics, Inc. Composition: Glyph International Ltd. Interior Printer/Bindery: Edwards Brothers Cover Printer: Coral Graphics
www.pearsonhighered.com
viivii
Preface for Instructors
Welcome to the sixth edition of Java: An Introduction to Problem Solving & Programming. This book is designed for a first course in programming and computer science. It covers programming techniques, as well as the basics of the Java programming language. It is suitable for courses as short as one quar- ter or as long as a full academic year. No previous programming experience is required, nor is any mathematics, other than a little high school algebra. The book can also be used for a course designed to teach Java to students who have already had another programming course, in which case the first few chapters can be assigned as outside reading.
Changes in This Edition
The following list highlights how this sixth edition differs from the fifth edition: ■ Updates have been made for Java version 7, including strings in switch
statements and the use of type inference in generic instance creation. ■ Additional case studies including unit testing, use of the Comparable inter-
face, processing comma-separated value files, and others. ■ Chapter 5 now begins with a simpler class to more gradually introduce how
classes are constructed. ■ Chapter 8 has been reorganized with a greater emphasis and more examples
on polymorphism and interfaces. ■ Chapter 2 describes how to create a Swing application using the JFrame
class so thereafter students have the option of implementing graphics in applets or in an application.
■ Chapter 12 includes an overview of the Java Collections Framework and examples using the HashMap and HashSet classes.
■ A description of System.out.printf has been added to Chapter 2. ■ A description of Math.random has been added to Chapter 6. ■ Twenty new programming projects have been added. ■ New VideoNotes added throughout the text to enhance student
understanding of programming concepts and techniques.
viii PREFACE FOR INSTRUCTORS
Latest Java Coverage
All of the code in this book has been tested using a pre-release version of Oracle’s Java SE Development Kit (JDK), version 7.0. Any imported classes are standard and in the Java Class Library that is part of Java. No additional classes or specialized libraries are needed.
Flexibility
If you are an instructor, this book adapts to the way you teach, rather than making you adapt to the book. It does not tightly prescribe the sequence in which your course mus