100% found this document useful (3 votes)
54 views

Introduction to Java Programming Brief 8th Edition Edition Y. Daniel Liang - The ebook in PDF format is available for download

The document provides information about the 'Introduction to Java Programming Brief 8th Edition' by Y. Daniel Liang, including download links for the book and other related Java programming resources. It outlines the book's pedagogical approach, which emphasizes a fundamentals-first and problem-driven methodology for teaching programming concepts. Additionally, it highlights the book's organization, improvements in the latest edition, and features such as a web-based course management system called LiveLab.

Uploaded by

gamfiorann
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
100% found this document useful (3 votes)
54 views

Introduction to Java Programming Brief 8th Edition Edition Y. Daniel Liang - The ebook in PDF format is available for download

The document provides information about the 'Introduction to Java Programming Brief 8th Edition' by Y. Daniel Liang, including download links for the book and other related Java programming resources. It outlines the book's pedagogical approach, which emphasizes a fundamentals-first and problem-driven methodology for teaching programming concepts. Additionally, it highlights the book's organization, improvements in the latest edition, and features such as a web-based course management system called LiveLab.

Uploaded by

gamfiorann
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 49

Visit https://ebookultra.

com to download the full version and


explore more ebooks or textbooks

Introduction to Java Programming Brief 8th Edition


Edition Y. Daniel Liang

_____ Click the link below to download _____


https://ebookultra.com/download/introduction-to-java-
programming-brief-8th-edition-edition-y-daniel-liang/

Explore and download more ebooks or textbooks at ebookultra.com


Here are some recommended products that we believe you will be
interested in. You can click the link to download.

Java Programming 8th Edition Joyce Farrell

https://ebookultra.com/download/java-programming-8th-edition-joyce-
farrell/

Introduction to Programming with Java 3rd Edition John


Dean

https://ebookultra.com/download/introduction-to-programming-with-
java-3rd-edition-john-dean/

Chaudhary Introduction to Java Programming Advanced


Features Core Series Updated To Java 8 2nd Edition Harry
H.
https://ebookultra.com/download/chaudhary-introduction-to-java-
programming-advanced-features-core-series-updated-to-java-8-2nd-
edition-harry-h/

Introduction to Programming with Greenfoot Object Oriented


Programming in Java with Games and Simulations 1st Edition
Michael Kolling
https://ebookultra.com/download/introduction-to-programming-with-
greenfoot-object-oriented-programming-in-java-with-games-and-
simulations-1st-edition-michael-kolling/
Brief Java Early Objects 9th Edition Cay Horstmann

https://ebookultra.com/download/brief-java-early-objects-9th-edition-
cay-horstmann/

A very Brief INTRODUCTION TO WATERCOLOUR Boudrouaz Bilel

https://ebookultra.com/download/a-very-brief-introduction-to-
watercolour-boudrouaz-bilel/

Java Programming 7th Edition Joyce Farrell

https://ebookultra.com/download/java-programming-7th-edition-joyce-
farrell/

Introduction to Syriac Daniel M. Gurtner

https://ebookultra.com/download/introduction-to-syriac-daniel-m-
gurtner/

Advanced Java Game Programming Wallace Croft

https://ebookultra.com/download/advanced-java-game-programming-
wallace-croft/
Introduction to Java Programming Brief 8th Edition
Edition Y. Daniel Liang Digital Instant Download
Author(s): Y. Daniel Liang
ISBN(s): 9780132130790, 0132130793
Edition: 8th Edition
File Details: PDF, 9.96 MB
Year: 2010
Language: english
INTRODUCTION TO

JAVA
TM

PROGRAMMING
This page intentionally left blank
INTRODUCTION TO

JAVA
TM

PROGRAMMING
BRIEF VERSION

Eighth Edition

Y. Daniel Liang
Armstrong Atlantic State University

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 Sao Paulo Sydney Hong Kong Seoul Singapore Taipei Tokyo
Vice President and Editorial Director, ECS: Marcia J. Horton
Editor in Chief, Computer Science: Michael Hirsch
Executive Editor: Tracy Dunkelberger
Assistant Editor: Melinda Haggerty
Editorial Assistant: Allison Michael
Vice President, Production: Vince O’Brien
Senior Managing Editor: Scott Disanno
Production Editor: Irwin Zucker
Senior Operations Specialist: Alan Fischer
Marketing Manager: Erin Davis
Marketing Assistant: Mack Patterson
Art Director: Kenny Beck
Cover Image: Male Ruby-throated Hummingbird / Steve Byland / Shutterstock;
Hummingbird, Nazca Lines / Gary Yim / Shutterstock
Art Editor: Greg Dulles
Media Editor: Daniel Sandin

Copyright © 2011, 2009, 2007, 2004 by Pearson Higher Education. Upper Saddle River, New Jersey, 07458.
All right 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 reproduction, storage in a retrieval sys-
tem, or transmission in any form or by any means, electronic, mechanical, photocopying, recording, or likewise. To
obtain permission(s) to use materials from this work, please submit a written request to Pearson Higher Education,
Permissions Department, 1 Lake Street, Upper Saddle River, NJ 07458.

The author and publisher of this book have used their best efforts in preparing this book. These efforts include the
development, research, and testing of the theories and programs to determine their effectiveness. The author and
publisher make no warranty of any kind, expressed or implied, with regard to these programs or the documentation
contained in this book. The author and publisher shall not be liable in any event for incidental or consequential
damages in connection with, or arising out of, the furnishing, performance, or use of these programs.

Library of Congress Cataloging-in-Publication Data on file.

10 9 8 7 6 5 4 3 2 1

ISBN-13: 978-0-13-213079-0
ISBN-10: 0-13-213079-3
This book is dedicated to Dr. S. K. Dhall and
Dr. S. Lakshmivarahan of the University of Oklahoma,
who inspired me in teaching and research. Thank you for being
my mentors and advisors.

To Samantha, Michael, and Michelle


This page intentionally left blank
PREFACE
This book is a brief version of Introduction to Java Programming, Comprehensive Version, brief version
8E. This version is designed for an introductory programming course, commonly known as comprehensive version
CS1. This version contains the first twenty chapters in the comprehensive version.
This book uses the fundamentals-first approach and teaches programming concepts and
techniques in a problem-driven way.
The fundamentals-first approach introduces basic programming concepts and techniques fundamentals-first
before objects and classes. My own experience, confirmed by the experiences of many col-
leagues, demonstrates that new programmers in order to succeed must learn basic logic and
fundamental programming techniques such as loops and stepwise refinement. The funda-
mental concepts and techniques of loops, methods, and arrays are the foundation for pro-
gramming. Building the foundation prepares students to learn object-oriented programming,
GUI, database, and Web programming.
Problem-driven means focused on problem-solving rather than syntax. We make introduc- problem-driven
tory programming interesting by using interesting problems. The central thread of this book
is on solving problems. Appropriate syntax and library are introduced to support the writing
of a program for solving the problems. To support teaching programming in a problem-
driven way, the book provides a wide variety of problems at various levels of difficulty to
motivate students. In order to appeal to students in all majors, the problems cover many appli-
cation areas in math, science, business, financials, gaming, animation, and multimedia.

What’s New in This Edition?


This edition substantially improves Introduction to Java Programming, Seventh Edition. The
major improvements are as follows:

■ This edition is completely revised in every detail to enhance clarity, presentation, content, complete revision
examples, and exercises.

■ In the examples and exercises, which are provided to motivate and stimulate student inter-
est in programming, one-fifth of the problems are new. new problems

■ In the previous edition, console input was covered at the end of Chapter 2. The new edi- early console input
tion introduces console input early in Chapter 2 so that students can write interactive pro-
grams early.

■ The hand trace box is added for many programs in early chapters to help noive students hand trace box
to read and trace programs.

■ Single-dimensional arrays and multidimensional arrays are covered in two chapters to multidimensional arrays
give instructors the flexibility to cover multidimensional arrays later.

■ The case study for the Sudoku problem has been moved to the Companion Website. A Sudoku problem simplified
more pedagogically effective simple version of the Sudoku problem is presented instead.

■ The design of the API for Java GUI programming is an excellent example of how the
object-oriented principle is applied. Students learn better with concrete and visual exam-
ples. So basic GUI now precedes the introduction of abstract classes and interfaces. The basic GUI earlier
instructor, however, can still choose to cover abstract classes and interfaces before GUI.

vii
viii Preface
exception handling earlier ■ Exception handling is covered before abstract classes and interfaces. The instructor can
still choose to cover exception handling later.

■ Chapter 12, “Object-Oriented Design and Patterns,” in the previous edition has been
design guidelines replaced by spreading the design guidelines and patterns into several chapters so that these
topics can be covered in appropriate context.

Learning Strategies
A programming course is quite different from other courses. In a programming course, you
learn from mistakes learn from examples, from practice, and from mistakes. You need to devote a lot of time to
writing programs, testing them, and fixing errors.
programmatic solution For first-time programmers, learning Java is like learning any high-level programming lan-
guage. The fundamental point is to develop the critical skills of formulating programmatic
solutions for real problems and translating them into programs using selection statements,
loops, methods, and arrays.
Once you acquire the basic skills of writing programs using loops, methods, and arrays,
object-oriented programming you can begin to learn how to develop large programs and GUI programs using the object-
oriented approach.
When you know how to program and you understand the concept of object-oriented pro-
Java API gramming, learning Java becomes a matter of learning the Java API. The Java API establish-
es a framework for programmers to develop applications using Java. You have to use the
classes and interfaces in the API and follow their conventions and rules to create applications.
The best way to learn the Java API is to imitate examples and do exercises.

Pedagogical Features
The book uses the following elements to get the most from the material:

■ Objectives list what students should have learned from the chapter. This will help them
determine whether they have met the objectives after completing the chapter.
■ Introduction opens the discussion with representative problems to give the reader an
overview of what to expect from the chapter.
■ Problems carefully chosen and presented in an easy-to-follow style, teach problem solv-
ing and programming concepts. The book uses many small, simple, and stimulating exam-
ples to demonstrate important ideas.
■ Chapter Summary reviews the important subjects that students should understand and
remember. It helps them reinforce the key concepts they have learned in the chapter.
■ Review Questions are grouped by sections to help students track their progress and eval-
uate their learning.
■ Programming Exercises are grouped by sections to provide students with opportunities
to apply on their own the new skills they have learned. The level of difficulty is rated as
easy (no asterisk), moderate (*), hard (**), or challenging (***). The trick of learning
programming is practice, practice, and practice. To that end, the book provides a great
many exercises.
■ LiveLab is a programming course assessment and management system. Students can
submit programs/quizzes online. The system automatically grades the programs/quizzes
and gives students instant feedback.

■ Notes, Tips, and Cautions are inserted throughout the text to offer valuable advice and
insight on important aspects of program development.
Preface ix

Note
Provides additional information on the subject and reinforces important concepts.

Tip
Teaches good programming style and practice.

Caution
Helps students steer away from the pitfalls of programming errors.

Design Guide
Provides the guidelines for designing programs.

Flexible Chapter Orderings


The book is designed to provide flexible chapter orderings to enable GUI, exception handling,
and recursion to be covered earlier or later. The diagram shows the chapter dependencies.

Part I: Fundamentals of Part II: Object-Oriented Part III: GUI Programming


Programming Programming

Chapter 1 Introduction to Chapter 8 Objects and Classes Chapter 12 GUI Basics


Computers, Programs, and
Java
Chapter 9 Strings and Text I/O Chapter 15 Graphics

Chapter 2 Elementary
Programming Chapter 10 Thinking in Objects Chapter 16 Event-Driven
Programming

Chapter 3 Selections Chapter 11 Inheritance and


Polymorphism Chapter 17 Creating Graphical
User Interfaces
Chapter 4 Loops
Chapter 13 Exception
Handling Chapter 18 Applets and
Multimedia
Chapter 5 Methods
Chapter 14 Abstract Classes
and Interfaces
Chapter 6 Single-Dimensional
Arrays
Chapter 19 Binary I/O

Chapter 7 Multidimensional
Arrays

Chapter 20 Recursion

Organization of the Book


The chapters in the brief version can be grouped into three parts that, taken together, form a
solid introduction to Java programming. Because knowledge is cumulative, the early chapters
provide the conceptual basis for understanding programming and guide students through
x Preface
simple examples and exercises; subsequent chapters progressively present Java programming
in detail, culminating with the development of comprehensive Java applications.

Part I: Fundamentals of Programming (Chapters 1–7, 20)


The first part of the book is a stepping stone, preparing you to embark on the journey of learn-
ing Java. You will begin to know Java (Chapter 1), and will learn fundamental programming
techniques with primitive data types, variables, constants, expressions, and operators (Chapter
2), control statements (Chapters 3–4), methods (Chapter 5), and arrays (Chapters 6–7). After
Chapter 6, you may jump to Chapter 20 to learn how to write recursive methods for solving
inherently recursive problems.

Part II: Object-Oriented Programming (Chapters 8–11, 13–14, 19)


This part introduces object-oriented programming. Java is an object-oriented programming
language that uses abstraction, encapsulation, inheritance, and polymorphism to provide great
flexibility, modularity, and reusability in developing software. You will learn programming
with objects and classes (Chapters 8–10), class inheritance (Chapter 11), polymorphism
(Chapter 11), exception handling (Chapter 13), abstract classes (Chapter 14), and interfaces
(Chapter 14). Processing strings will be introduced in Chapter 9 along with text I/O. Binary
I/O is introduced in Chapter 19.

Part III: GUI Programming (Chapters 12, 15–18)


This part introduces elementary Java GUI programming in Chapters 12 and 15–18. Major
topics include GUI basics (Chapter 12), drawing shapes (Chapter 15), event-driven program-
ming (Chapter 16), creating graphical user interfaces (Chapter 17), and writing applets
(Chapter 18). You will learn the architecture of Java GUI programming and use the GUI com-
ponents to develop applications and applets from these elementary GUI chapters.

Java Development Tools


You can use a text editor, such as the Windows Notepad or WordPad, to create Java programs
and to compile and run the programs from the command window. You can also use a Java
IDE tutorials development tool, such as TextPad, NetBeans, or Eclipse. These tools support an integrated
development environment (IDE) for rapidly developing Java programs. Editing, compiling,
building, executing, and debugging programs are integrated in one graphical user interface.
Using these tools effectively can greatly increase your programming productivity. TextPad is
a primitive IDE tool. NetBeans and Eclipse are more sophisticated, but they are easy to use if
you follow the tutorials. Tutorials on TextPad, NetBeans, and Eclipse can be found in the sup-
plements on the Companion Website.

LiveLab
This book is accompanied by an improved faster Web-based course assessment and manage-
ment system. The system has three main components:

■ Automatic Grading System: It can automatically grade exercises from the text or created
by instructors.

■ Quiz Creation/Submission/Grading System: It enables instructors to create/modify


quizzes that students can take and be graded upon automatically.

■ Tracking grades, attendance, etc: The system enables the students to track grades and
instructors to view the grades of all students, and to track attendance.
Preface xi
The main features of the Automatic Grading System are as follows:

■ Allows students to compile, run and submit exercises. (The system checks whether their
program runs correctly—students can continue to run and submit the program before the
due date.)
■ Allows instructors to review submissions; run programs with instructor test cases; correct
them; and provide feedback to students.
■ Allows instructors to create/modify their own exercises, create public and secret test cases,
assign exercises, and set due dates for the whole class or for individuals.
■ All the exercises in the text can be assigned to students. Additionally, LiveLab provides
extra exercises that are not printed in the text.
■ Allows instructors to sort and filter all exercises and check grades (by time frame, student,
and/or exercise).
■ Allows instructors to delete students from the system.
■ Allows students and instructors to track grades on exercises.

The main features of the Quiz System are as follows:

■ Allows instructors to create/modify quizzes from test bank or a text file or to create com-
plete new tests online.
■ Allows instructors to assign the quizzes to students and set a due date and test time limit
for the whole class or for individuals.
■ Allows students and instructors to review submitted quizzes.
■ Allows students and instructors to track grades on quizzes.

Video Notes are Pearson’s new visual tool designed for teaching students key programming con-
cepts and techniques. These short step-by-step videos demonstrate how to solve problems from
design through coding. Video Notes allows for self-paced instruction with easy navigation includ-
ing the ability to select, play, rewind, fast-forward, and stop within each Video Note exercise.
Video Note margin icons in your textbook let you know what a Video Notes video is avail-
able for a particular concept or homework problem.
Video Notes are free with the purchase of a new textbook. To purchase access to Video
Notes, please go to www.pearsonhighered.com/liang.

Student Resource Materials


The student resources can be accessed through the Publisher’s Web site
(www.pearsonhighered.com/liang) and the Companion Web site (www.cs.armstrong.edu/liang/intro8e).
The resources include:
■ Answers to review questions
■ Solutions to even-numbered programming exercises
■ Source code for book examples
■ Interactive self-test (organized by chapter sections)
■ LiveLab
■ Resource links
■ Errata
xii Preface
■ Video Notes
■ Web Chapters
To access the Video Notes and Web Chapters, students must log onto www.pearsonhighered.com/liang
and use the access card located in the front of the book to register and access the material. If there is
no access card in the front of this textbook, students can purchase access by visiting
www.pearsonhighered.com/liang and selecting purchase access to premium content.

Additional Supplements
The text covers the essential subjects. The supplements extend the text to introduce addition-
al topics that might be of interest to readers. The supplements listed in this table are available
from the Companion Web site.

Supplements on the Companion Web site

Part I General Supplements N Design Patterns


A Glossary O Text I/O Prior to JDK 1.5 (Reader and
B Installing and Configuring JDK Writer Classes)
C Compiling and Running Java from the P Assertions
Command Window Q Packaging and Deploying Java Projects
D Java Coding Style Guidelines R Java Web Start
E Creating Desktop Shortcuts for Java S GridBagLayout | OverlayLayout |
Applications on Windows SpringLayout
F Using Packages to Organize the Classes T Networking Using Datagram Protocol
in the Text U Creating Internal Frames
V Pluggable Look and Feel
Part II IDE Supplements
W UML Graphical Notations
A TextPad Tutorial
X Testing Classes Using JUnit
B NetBeans Tutorial | One Page Startup
Y JNI
Instruction
Z The StringTokenizer Class
C Learning Java Effectively with
NetBeans Part IV Database Supplements
D Eclipse Tutorial | One Page Startup A SQL Statements for Creating and
Instruction Initializing Tables Used in the Book
E Learning Java Effectively with Eclipse B MySQL Tutorial
C Oracle Tutorial
Part III Java Supplements
D Microsoft Access Tutorial
A Java Characteristics
E Introduction to Database Systems
B Discussion on Operator and Operand
F Relational Database Concept
Evaluations
G Database Design
C The & and | Operators
H SQL Basics
D Bitwise Operations
I Advanced SQL
E Statement Labels with break and continue
F Enumerated Types Part V Web Programming Supplements
G Packages A HTML and XHTML Tutorial
H Regular Expressions B CSS Tutorial
I Formatted Strings C XML
J The Methods in the Object Class D Java and XML
K Hiding Data Fields and Static Methods E Tomcat Tutorial
L Initialization Blocks F More Examples on JSF and Visual Web
M Extended Discussions on Overriding Development
Methods
Preface xiii

Instructor Resource Materials


The instructor resources can be accessed through the Publisher’s Web site
(www.pearsonhighered.com/liang) and the Companion Web site (www.cs.armstrong.edu/liang/intro8e).
For username and password information to the Liang 8e site, please contact your Pearson
Representative.
The resources include:
■ PowerPoint lecture slides with source code and run program capacity
■ Instructor solutions manual
■ Computerized test generator
■ Sample exams using multiple choice and short answer questions, write and trace pro-
grams, and correcting programming errors.
■ LiveLab
■ Errata
■ Video Notes
■ Web Chapters

To access the Video Notes and Web Chapters, instructors must log onto www.pearsonhighered.com/liang
and register.

Acknowledgments
I would like to thank Armstrong Atlantic State University for enabling me to teach what I
write and for supporting me in writing what I teach. Teaching is the source of inspiration for
continuing to improve the book. I am grateful to the instructors and students who have offered
comments, suggestions, bug reports, and praise.
This book has been greatly enhanced thanks to outstanding reviews for this and previous
editions. The reviewers are: Elizabeth Adams (James Madison University), Syed Ahmed
(North Georgia College and State University), Omar Aldawud (Illinois Institute of
Technology), Yang Ang (University of Wollongong, Australia), Kevin Bierre (Rochester
Institute of Technology), David Champion (DeVry Institute), James Chegwidden (Tarrant
County College), Anup Dargar (University of North Dakota), Charles Dierbach (Towson
University), Frank Ducrest (University of Louisiana at Lafayette), Erica Eddy (University of
Wisconsin at Parkside), Deena Engel (New York University), Henry A Etlinger (Rochester
Institute of Technology), James Ten Eyck (Marist College), Olac Fuentes (University of
Texas at El Paso), Harold Grossman (Clemson University), Barbara Guillot (Louisiana State
University), Ron Hofman (Red River College, Canada), Stephen Hughes (Roanoke College),
Vladan Jovanovic (Georgia Southern University), Edwin Kay (Lehigh University), Larry
King (University of Texas at Dallas), Nana Kofi (Langara College, Canada), George
Koutsogiannakis (Illinois Institute of Technology), Roger Kraft (Purdue University at
Calumet), Hong Lin (DeVry Institute), Dan Lipsa (Armstrong Atlantic State University),
James Madison (Rensselaer Polytechnic Institute), Frank Malinowski (Darton College), Tim
Margush (University of Akron), Debbie Masada (Sun Microsystems), Blayne Mayfield
(Oklahoma State University), John McGrath (J.P. McGrath Consulting), Shyamal Mitra
(University of Texas at Austin), Michel Mitri (James Madison University), Kenrick Mock
(University of Alaska Anchorage), Jun Ni (University of Iowa), Benjamin Nystuen
(University of Colorado at Colorado Springs), Maureen Opkins (CA State University, Long
Beach), Gavin Osborne (University of Saskatchewan), Kevin Parker (Idaho State
University), Dale Parson (Kutztown University), Mark Pendergast (Florida Gulf Coast
xiv Preface
University), Richard Povinelli (Marquette University), Roger Priebe (University of Texas at
Austin), Mary Ann Pumphrey (De Anza Junior College), Pat Roth (Southern Polytechnic
State University), Ronald F. Taylor (Wright State University), Carolyn Schauble (Colorado
State University), David Scuse (University of Manitoba), Ashraf Shirani (San Jose State
University), Daniel Spiegel (Kutztown University), Amr Sabry (Indiana University), Lixin
Tao (Pace University), Russ Tront (Simon Fraser University), Deborah Trytten (University
of Oklahoma), Kent Vidrine (George Washington University), and Bahram Zartoshty
(California State University at Northridge).
It is a great pleasure, honor, and privilege to work with Pearson. I would like to thank Tracy
Dunkelberger and her colleagues Marcia Horton, Margaret Waples, Erin Davis, Michael Hirsh,
Matt Goldstein, Jake Warde, Melinda Haggerty, Allison Michael, Scott Disanno, Irwin Zucker,
and their colleagues for organizing, producing, and promoting this project, and Robert Lentz
for copy editing.
As always, I am indebted to my wife, Samantha, for her love, support, and encouragement.
Y. Daniel Liang
y.daniel.liang@gmail.com
www.cs.armstrong.edu/liang
www.pearsonhighered.com/liang
BRIEF CONTENTS
1 Introduction to Computers, Programs, 16 Event-Driven Programming 533
and Java 1 17 Creating Graphical User Interfaces 571
2 Elementary Programming 23 18 Applets and Multimedia 613
3 Selections 71 19 Binary I/O 649
4 Loops 115 20 Recursion 677
5 Methods 155
6 Single-Dimensional Arrays 197
7 Multidimensional Arrays 235
APPENDIXES
8 Objects and Classes 263 A Java Keywords 707
9 Strings and Text I/O 301 B The ASCII Character Set 710
10 Thinking in Objects 343 C Operator Precedence Chart 712
11 Inheritance and Polymorphism 373 D Java Modifiers 714
12 GUI Basics 405 E Special Floating-Point Values 716
13 Exception Handling 431 F Number Systems 717
14 Abstract Classes and Interfaces 457
15 Graphics 497
INDEX 721

xv
CONTENTS
Chapter 1 Introduction to Computers, Programs,
and Java 1
1.1 Introduction 2
1.2 What Is a Computer? 2
1.3 Programs 5
1.4 Operating Systems 7
1.5 Java, World Wide Web, and Beyond 8
1.6 The Java Language Specification, API, JDK, and IDE 10
1.7 A Simple Java Program 11
1.8 Creating, Compiling, and Executing a Java Program 13
1.9 (GUI) Displaying Text in a Message Dialog Box 16

Chapter 2 Elementary Programming 23


2.1 Introduction 24
2.2 Writing Simple Programs 24
2.3 Reading Input from the Console 26
2.4 Identifiers 29
2.5 Variables 29
2.6 Assignment Statements and Assignment Expressions 30
2.7 Named Constants 31
2.8 Numeric Data Types and Operations 32
2.9 Problem: Displaying the Current Time 37
2.10 Shorthand Operators 39
2.11 Numeric Type Conversions 41
2.12 Problem: Computing Loan Payments 43
2.13 Character Data Type and Operations 44
2.14 Problem: Counting Monetary Units 47
2.15 The String Type 50
2.16 Programming Style and Documentation 51
2.17 Programming Errors 53
2.18 (GUI) Getting Input from Input Dialogs 55

Chapter 3 Selections 71
3.1 Introduction 72
3.2 boolean Data Type 72
3.3 Problem: A Simple Math Learning Tool 73
3.4 if Statements 74
xvi
Contents xvii
3.5 Problem: Guessing Birthdays 75
3.6 Two-Way if Statements 79
3.7 Nested if Statements 80
3.8 Common Errors in Selection Statements 81
3.9 Problem: An Improved Math Learning Tool 82
3.10 Problem: Computing Body Mass Index 84
3.11 Problem: Computing Taxes 85
3.12 Logical Operators 88
3.13 Problem: Determining Leap Year 90
3.14 Problem: Lottery 91
3.15 switch Statements 93
3.16 Conditional Expressions 95
3.17 Formatting Console Output 95
3.18 Operator Precedence and Associativity 97
3.19 (GUI) Confirmation Dialogs 98

Chapter 4 Loops 115


4.1 Introduction 116
4.2 The while Loop 116
4.3 The do-while Loop 124
4.4 The for Loop 126
4.5 Which Loop to Use? 128
4.6 Nested Loops 129
4.7 Minimizing Numeric Errors 130
4.8 Case Studies 131
4.9 Keywords break and continue 135
4.10 (GUI) Controlling a Loop with a Confirmation Dialog 139

Chapter 5 Methods 155


5.1 Introduction 156
5.2 Defining a Method 156
5.3 Calling a Method 158
5.4 void Method Example 160
5.5 Passing Parameters by Values 162
5.6 Modularizing Code 165
5.7 Problem: Converting Decimals to Hexadecimals 167
5.8 Overloading Methods 168
5.9 The Scope of Variables 171
5.10 The Math Class 172
5.11 Case Study: Generating Random Characters 175
5.12 Method Abstraction and Stepwise Refinement 176
xviii Contents

Chapter 6 Single-Dimensional Arrays 197


6.1 Introduction 198
6.2 Array Basics 198
6.3 Problem: Lotto Numbers 204
6.4 Problem: Deck of Cards 206
6.5 Copying Arrays 208
6.6 Passing Arrays to Methods 209
6.7 Returning an Array from a Method 212
6.8 Variable-Length Argument Lists 215
6.9 Searching Arrays 216
6.10 Sorting Arrays 219
6.11 The Arrays Class 223

Chapter 7 Multidimensional Arrays 235


7.1 Introduction 236
7.2 Two-Dimensional Array Basics 236
7.3 Processing Two-Dimensional Arrays 238
7.4 Passing Two-Dimensional Arrays to Methods 240
7.5 Problem: Grading a Multiple-Choice Test 241
7.6 Problem: Finding a Closest Pair 242
7.7 Problem: Sudoku 244
7.8 Multidimensional Arrays 248

Chapter 8 Objects and Classes 263


8.1 Introduction 264
8.2 Defining Classes for Objects 264
8.3 Example: Defining Classes and Creating Objects 266
8.4 Constructing Objects Using Constructors 270
8.5 Accessing Objects via Reference Variables 270
8.6 Using Classes from the Java Library 274
8.7 Static Variables, Constants, and Methods 278
8.8 Visibility Modifiers 282
8.9 Data Field Encapsulation 283
8.10 Passing Objects to Methods 286
8.11 Array of Objects 287

Chapter 9 Strings and Text I/O 301


9.1 Introduction 302
9.2 The String Class 302
9.3 The Character Class 313
Contents xix
9.4 The StringBuilder/StringBuffer Class 315
9.5 Command-Line Arguments 320
9.6 The File Class 322
9.7 File Input and Output 325
9.8 (GUI) File Dialogs 329

Chapter 10 Thinking in Objects 343


10.1 Introduction 344
10.2 Immutable Objects and Classes 344
10.3 The Scope of Variables 345
10.4 The this Reference 346
10.5 Class Abstraction and Encapsulation 347
10.6 Object-Oriented Thinking 351
10.7 Object Composition 353
10.8 Designing the Course Class 355
10.9 Designing a Class for Stacks 357
10.10 Designing the GuessDate Class 359
10.11 Class Design Guidelines 362

Chapter 11 Inheritance and Polymorphism 373


11.1 Introduction 374
11.2 Superclasses and Subclasses 374
11.3 Using the super Keyword 380
11.4 Overriding Methods 382
11.5 Overriding vs. Overloading 383
11.6 The Object Class and Its toString() Method 384
11.7 Polymorphism 384
11.8 Dynamic Binding 385
11.9 Casting Objects and the instanceof Operator 387
11.10 The Object’s equals() Method 389
11.11 The ArrayList Class 390
11.12 A Custom Stack Class 393
11.13 The protected Data and Methods 394
11.14 Preventing Extending and Overriding 396

Chapter 12 GUI Basics 405


12.1 Introduction 406
12.2 Swing vs. AWT 406
12.3 The Java GUI API 406
12.4 Frames 408
12.5 Layout Managers 411
Other documents randomly have
different content
back
back
back
back
back
back
back
back
back
back
back
back
back
back
back
back
back
back
back
Welcome to our website – the ideal destination for book lovers and
knowledge seekers. With a mission to inspire endlessly, we offer a
vast collection of books, ranging from classic literary works to
specialized publications, self-development books, and children's
literature. Each book is a new journey of discovery, expanding
knowledge and enriching the soul of the reade

Our website is not just a platform for buying books, but a bridge
connecting readers to the timeless values of culture and wisdom. With
an elegant, user-friendly interface and an intelligent search system,
we are committed to providing a quick and convenient shopping
experience. Additionally, our special promotions and home delivery
services ensure that you save time and fully enjoy the joy of reading.

Let us accompany you on the journey of exploring knowledge and


personal growth!

ebookultra.com

You might also like