did-you-know? rent-now

Amazon no longer offers textbook rentals. We do!

did-you-know? rent-now

Amazon no longer offers textbook rentals. We do!

We're the #1 textbook rental company. Let us show you why.

9780130341518

Java: How to Program

by ;
  • ISBN13:

    9780130341518

  • ISBN10:

    0130341517

  • Edition: 4th
  • Format: Paperback
  • Copyright: 2001-08-01
  • Publisher: Prentice Hall
  • View Upgraded Edition

Note: Supplemental materials are not guaranteed with Rental or Used book purchases.

Purchase Benefits

  • Free Shipping Icon Free Shipping On Orders Over $35!
    Your order must be $35 or more to qualify for free economy shipping. Bulk sales, PO's, Marketplace items, eBooks and apparel do not qualify for this offer.
  • eCampus.com Logo Get Rewarded for Ordering Your Textbooks! Enroll Now
List Price: $88.00 Save up to $22.00
  • Buy Used
    $66.00
    Add to Cart Free Shipping Icon Free Shipping

    USUALLY SHIPS IN 2-4 BUSINESS DAYS

Supplemental Materials

What is included with this book?

Summary

For CS1 and other courses on programming in Java offered in departments of Computer Science, CIS, MIS, IT, Business, Engineering, and Continuing Education. Also appropriate for upper-level courses where the instructor wants a reference to the Java language. Written by the authors of the world's best-selling introductory C and C++ texts, this state-of-the-art guide examines one of today's hottest computer languages-Java; the first general-purpose, object-oriented language that is truly platform-independent. The latest Java 2 features are incorporated throughout this edition.

Table of Contents

Preface xxxv
Introduction to Computers, the Internet and the Web
1(54)
Introduction
2(5)
What Is a Computer?
7(1)
Computer Organization
7(1)
Evolution of Operating Systems
8(1)
Personal, Distributed and Client/Server Computing
9(1)
Machine Languages, Assembly Languages and High-Level Languages
10(1)
History of C++
11(1)
History of Java
12(1)
Java Class Libraries
13(1)
Other High-Level Languages
14(1)
Structured Programming
14(1)
The Internet and the World Wide Web
15(1)
Basics of a Typical Java Environment
16(3)
General Notes about Java and This Book
19(3)
Thinking About Objects: Introduction to Object Technology and the Unified Modeling Language
22(4)
Discovering Design Patterns: Introduction
26(2)
Tour of the Book
28(13)
(Optional) A Tour of the Case Study on Object-Oriented Design with the UML
41(4)
(Optional) A Tour of the ``Discovering Design Patterns'' Sections
45(10)
Introduction to Java Applications
55(50)
Introduction
56(1)
A First Program in Java: Printing a Line of Text
56(6)
Compiling and Executing your First Java Application
61(1)
Modifying Our First Java Program
62(3)
Displaying a Single Line of Text with Multiple Statements
62(1)
Displaying Multiple Lines of Text with a Single Statement
63(2)
Displaying Text in a Dialog Box
65(4)
Another Java Application: Adding Integers
69(6)
Memory Concepts
75(1)
Arithmetic
76(3)
Decision Making: Equality and Relational Operators
79(8)
(Optional Case Study) Thinking About Objects: Examining the Problem Statement
87(18)
Introduction to Java Applets
105(43)
Introduction
106(1)
Sample Applets from the Java 2 Software Development Kit
107(5)
The TicTacToe Applet
107(4)
The DrawTest Applet
111(1)
The Java2D Applet
112(1)
A Simple Java Applet: Drawing a String
112(8)
Compiling and Executing WelcomeApplet
118(2)
Two More Simple Applets: Drawing Strings and Lines
120(3)
Another Java Applet: Adding Floating-Point Numbers
123(7)
Viewing Applets in a Web Browser
130(4)
Viewing Applets in Netscape Navigator 6
131(1)
Viewing Applets in Other Browsers Using the Java Plug-In
131(3)
Java Applet Internet and World Wide Web Resources
134(1)
(Optional Case Study) Thinking About Objects: Identifying the Classes in a Problem Statement
135(13)
Control Structures: Part 1
148(49)
Introduction
149(1)
Algorithms
149(1)
Pseudocode
150(1)
Control Structures
150(3)
The if Selection Structure
153(2)
The if/else Selection Structure
155(4)
The while Repetition Structure
159(1)
Formulating Algorithms: Case Study I (Counter-Controlled Repetition)
160(5)
Formulating Algorithms with Top-Down, Stepwise Refinement: Case Study 2 (Sentinel-Controlled Repetition)
165(8)
Formulating Algorithms with Top-Down, Stepwise Refinement: Case Study 3 (Nested Control Structures)
173(5)
Assignment Operators
178(1)
Increment and Decrement Operators
179(3)
Primitive Data Types
182(1)
(Optional Case Study) Thinking About Objects: Identifying Class Attributes
183(14)
Control Structures: Part 2
197(49)
Introduction
198(1)
Essentials of Counter-Controlled Repetition
198(3)
The for Repetition Structure
201(4)
Examples Using the for Structure
205(5)
The switch Multiple-Selection Structure
210(5)
The do/while Repetition Structure
215(3)
Statements break and continue
218(2)
Labeled break and continue Statements
220(2)
Logical Operators
222(7)
Structured Programming Summary
229(5)
(Optional Case Study) Thinking About Objects: Identifying Objects' States and Activities
234(12)
Methods
246(67)
Introduction
247(1)
Program Modules in Java
247(2)
Math Class Methods
249(1)
Methods
249(2)
Method Definitions
251(7)
Argument Promotion
258(1)
Java API Packages
259(2)
Random-Number Generation
261(4)
Example: A Game of Chance
265(9)
Duration of Identifiers
274(1)
Scope Rules
275(3)
Recursion
278(3)
Example Using Recursion: The Fibonacci Series
281(5)
Recursion vs. Iteration
286(2)
Method Overloading
288(3)
Methods of Class JApplet
291(2)
(Optional Case Study) Thinking About Objects: Identifying Class Operations
293(20)
Arrays
313(65)
Introduction
314(1)
Arrays
315(2)
Declaring and Allocating Arrays
317(1)
Examples Using Arrays
317(12)
Allocating an Array and Initializing Its Elements
318(1)
Using an Initializer List to Initialize Elements of an Array
319(1)
Calculating the Value to Store in Each Array Element
320(2)
Summing the Elements of an Array
322(1)
Using Histograms to Display Array Data Graphically
323(1)
Using the Elements of an Array as Counters
324(2)
Using Arrays to Analyze Survey Results
326(3)
References and Reference Parameters
329(1)
Passing Arrays to Methods
329(3)
Sorting Arrays
332(3)
Searching Arrays: Linear Search and Binary Search
335(8)
Searching an Array with Linear Search
335(3)
Searching a Sorted Array with Binary Search
338(5)
Multiple-Subscripted Arrays
343(7)
(Optional Case Study) Thinking About Objects: Collaboration Among Objects
350(28)
Object-Based Programming
378(67)
Introduction
379(1)
Implementing a Time Abstract Data Type with a Class
380(8)
Class Scope
388(1)
Controlling Access to Members
388(2)
Creating Packages
390(4)
Initializing Class Objects: Constructors
394(1)
Using Overloaded Constructors
395(5)
Using Set and Get Methods
400(11)
Executing an Applet that Uses Programmer-Defined Packages
409(2)
Software Reusability
411(1)
Final Instance Variables
412(2)
Composition: Objects as Instance Variables of Other Classes
414(3)
Package Access
417(2)
Using the this Reference
419(7)
Finalizers
426(1)
Static Class Members
427(5)
Data Abstraction and Encapsulation
432(2)
Example: Queue Abstract Data Type
433(1)
(Optional Case Study) Thinking About Objects: Starting to Program the Classes for the Elevator Simulation
434(11)
Object-Oriented Programming
445(91)
Introduction
446(3)
Superclasses and Subclasses
449(2)
protected Members
451(1)
Relationship between Superclass Objects and Subclass Objects
452(7)
Constructors and Finalizers in Subclasses
459(4)
Implicit Subclass-Object-to-Superclass-Object Conversion
463(1)
Software Engineering with Inheritance
464(1)
Composition vs. Inheritance
465(1)
Case Study: Point, Circle, Cylinder
465(7)
Introduction to Polymorphism
472(1)
Type Fields and switch Statements
473(1)
Dynamic Method Binding
473(1)
final Methods and Classes
474(1)
Abstract Superclasses and Concrete Classes
474(1)
Polymorphism Examples
475(2)
Case Study: A Payroll System Using Polymorphism
477(8)
New Classes and Dynamic Binding
485(1)
Case Study: Inheriting Interface and Implementation
486(8)
Case Study: Creating and Using Interfaces
494(7)
Inner Class Definitions
501(11)
Notes on Inner Class Definitions
512(1)
Type-Wrapper Classes for Primitive Types
513(1)
(Optional Case Study) Thinking About Objects: Incorporating Inheritance into the Elevator Simulation
513(7)
(Optional) Discovering Design Patterns: Introducing Creational, Structural and Behavioral Design Patterns
520(16)
Creational Design Patterns
521(2)
Structural Design Patterns
523(1)
Behavioral Design Patterns
524(2)
Conclusion
526(1)
Internet and World-Wide-Web Resources
526(10)
Strings and Characters
536(65)
Introduction
537(1)
Fundamentals of Characters and Strings
538(1)
String Constructors
538(2)
String Methods length, charAt and getChars
540(2)
Comparing Strings
542(5)
String Method hashCode
547(2)
Locating Characters and Substrings in Strings
549(2)
Extracting Substrings from Strings
551(1)
Concatenating Strings
552(1)
Miscellaneous String Methods
553(2)
Using String Method valueOf
555(2)
String Method intern
557(2)
StringBuffer Class
559(1)
StringBuffer Constructors
560(1)
StringBuffer Methods length, capacity, setLength and ensureCapacity
561(2)
StringBuffer Methods charAt, setCharAt, getChars and reverse
563(1)
StringBuffer append Methods
564(2)
StringBuffer Insertion and Deletion Methods
566(2)
Character Class Examples
568(8)
Class StringTokenizer
576(3)
Card Shuffling and Dealing Simulation
579(4)
(Optional Case Study) Thinking About Objects: Event Handling
583(18)
Graphics and Java2D
601(45)
Introduction
602(2)
Graphics Contexts and Graphics Objects
604(1)
Color Control
605(7)
Font Control
612(6)
Drawing Lines, Rectangles and Ovals
618(4)
Drawing Arcs
622(3)
Drawing Polygons and Polylines
625(3)
The Java2D API
628(1)
Java2D Shapes
628(7)
(Optional Case Study) Thinking About Objects: Designing Interfaces with the UML
635(11)
Graphical User Interface Components: Part 1
646(74)
Introduction
647(2)
Swing Overview
649(2)
JLabel
651(3)
Event-Handling Model
654(2)
JTextField and JPasswordField
656(6)
How Event Handling Works
660(2)
JButton
662(3)
JCheckBox and JRadioButton
665(6)
JComboBox
671(2)
JList
673(3)
Multiple-Selection Lists
676(2)
Mouse Event Handling
678(5)
Adapter Classes
683(6)
Keyboard Event Handling
689(3)
Layout Managers
692(9)
FlowLayout
693(3)
BorderLayout
696(3)
GridLayout
699(2)
Panels
701(2)
(Optional Case Study) Thinking About Objects: Use Cases
703(17)
Graphical User Interface Components: Part 2
720(84)
Introduction
721(1)
JTextArea
722(3)
Creating a Customized Subclass of JPanel
725(5)
Creating a Self-Contained Subclass of JPanel
730(5)
JSlider
735(4)
Windows
739(2)
Designing Programs that Execute as Applets or Applications
741(6)
Using Menus with Frames
747(8)
Using JPopupMenus
755(3)
Pluggable Look-and-Feel
758(4)
Using JDesktopPane and JInternalFrame
762(4)
Layout Managers
766(1)
BoxLayout Layout Manager
767(3)
CardLayout Layout Manager
770(4)
GridBagLayout Layout Manager
774(6)
GridBagConstraints Constants Relative and Remainder
780(3)
(Optional Case Study) Thinking About Objects: Model-View-Controller
783(5)
(Optional) Discovering Design Patterns: Design Patterns Used in Packags java.awt and javax.swing
788(16)
Creational Design Patterns
789(1)
Structural Design Patterns
789(3)
Behavioral Design Patterns
792(3)
Conclusion
795(9)
Exception Handling
804(33)
Introduction
805(2)
When Exception Handling Should Be Used
807(1)
Other Error-Handling Techniques
807(1)
Basics of Java Exception Handling
808(1)
try Blocks
809(1)
Throwing an Exception
809(1)
Catching an Exception
810(2)
Exception-Handling Example: Divide by Zero
812(6)
Rethrowing an Exception
818(1)
throws Clause
818(6)
Constructors, Finalizers and Exception Handling
824(1)
Exceptions and Inheritance
824(1)
finally Block
825(5)
Using printStackTrace and getMessage
830(7)
Multithreading
837(57)
Introduction
838(2)
Class Thread: An Overview of the Thread Methods
840(1)
Thread States: Life Cycle of a Thread
841(1)
Thread Priorities and Thread Scheduling
842(6)
Thread Synchronization
848(1)
Producer/Consumer Relationship without Thread Synchronization
849(5)
Producer/Consumer Relationship with Thread Synchronization
854(6)
Producer/Consumer Relationship: The Circular Buffer
860(9)
Daemon Threads
869(1)
Runnable Interface
870(6)
Thread Groups
876(1)
(Optional Case Study) Thinking About Objects: Multithreading
877(9)
(Optional) Discovering Design Patterns: Concurrent Design Patterns
886(8)
Files and Streams
894(84)
Introduction
895(1)
Data Hierarchy
895(2)
Files and Streams
897(6)
Creating a Sequential-Access File
903(12)
Reading Data from a Sequential-Access File
915(12)
Updating Sequential-Access Files
927(1)
Random-Access Files
928(1)
Creating a Random-Access File
928(5)
Writing Data Randomly to a Random-Access File
933(6)
Reading Data Sequentially from a Random-Access File
939(5)
Example: A Transaction-Processing Program
944(17)
Class File
961(17)
Networking
978(90)
Introduction
979(2)
Manipulating URIs
981(5)
Reading a File on a Web Server
986(4)
Establishing a Simple Server Using Stream Sockets
990(1)
Establishing a Simple Client Using Stream Sockets
991(1)
Client/Server Interaction with Stream Socket Connections
992(11)
Connectionless Client/Server Interaction with Datagrams
1003(8)
Client/Server Tic-Tac-Toe Using a Multithreaded Server
1011(15)
Security and the Network
1026(1)
DeitelMessenger Chat Server and Client
1026(30)
DeitelMessengerServer and Supporting Classes
1027(9)
DeitelMessenger Client and Supporting Classes
1036(20)
(Optional) Discovering Design Patterns: Design Patterns Used in Packages java.io and java.net
1056(12)
Creational Design Patterns
1056(1)
Structural Design Patterns
1057(1)
Architectural Patterns
1058(2)
Conclusion
1060(8)
Multimedia: Images, Animation, Audio and Video
1068(26)
Introduction
1069(1)
Loading, Displaying and Scaling Images
1070(3)
Animating a Series of Images
1073(4)
Customizing LogoAnimator via Applet Parameters
1077(4)
Image Maps
1081(3)
Loading and Playing Audio Clips
1084(3)
Internet and World Wide Web Resources
1087(7)
Data Structures
1094(53)
Introduction
1095(1)
Self-Referential Classes
1096(1)
Dynamic Memory Allocation
1096(1)
Linked Lists
1097(11)
Stacks
1108(5)
Queues
1113(3)
Trees
1116(31)
Java Utilities Package and Bit Manipulation
1147(54)
Introduction
1148(1)
Vector Class and Enumeration Interface
1148(8)
Stack Class
1156(4)
Dictionary Class
1160(1)
Hashtable Class
1161(7)
Properties Class
1168(6)
Random Class
1174(1)
Bit Manipulation and the Bitwise Operators
1175(15)
BitSet Class
1190(11)
Collections
1201(35)
Introduction
1202(1)
Collections Overview
1203(1)
Class Arrays
1203(5)
Interface Collection and Class Collections
1208(1)
Lists
1208(7)
Algorithms
1215(8)
Algorithm sort
1215(2)
Algorithm shuffle
1217(2)
Algorithms reverse, fill, copy, max and min
1219(2)
Algorithm binarySearch
1221(2)
Sets
1223(3)
Maps
1226(2)
Synchronization Wrappers
1228(1)
Unmodifiable Wrappers
1228(1)
Abstract Implementations
1229(1)
(Optional) Discovering Design Patterns: Design Patterns Used in Package java.util
1229(7)
Creational Design Patterns
1229(1)
Behavioral Design Patterns
1230(1)
Conclusion
1230(6)
Java Media Framework and Java Sound (on CD)
1236(110)
Introduction
1237(1)
Playing Media
1238(11)
Formatting and Saving Captured Media
1249(14)
RTP Streaming
1263(14)
Java Sound
1277(1)
Playing Sampled Audio
1278(7)
Musical Instrument Digital Interface (MIDI)
1285(31)
MIDI Playback
1286(5)
MIDI Recording
1291(4)
MIDI Synthesis
1295(4)
Class MidiDemo
1299(17)
Internet and World Wide Web Resources
1316(1)
(Optional Case Study) Thinking About Objects: Animation and Sound in the View
1317(29)
A Java Demos 1346(2)
Introduction
1346(1)
The Sites
1346(2)
B Java Resources 1348(5)
Resources
1348(1)
Products
1349(1)
FAQs
1350(1)
Tutorials
1350(1)
Magazines
1350(1)
Java Applets
1350(1)
Multimedia
1351(1)
Newsgroups
1351(2)
C Operator Precedence Chart 1353(2)
D ASCII Character Set 1355(1)
E Number Systems (on CD) 1356(13)
Introduction
1357(3)
Abbreviating Binary Numbers as Octal Numbers and Hexadecimal Numbers
1360(1)
Converting Octal Numbers and Hexadecimal Numbers to Binary Numbers
1361(1)
Converting from Binary, Octal, or Hexadecimal to Decimal
1361(1)
Converting from Decimal to Binary, Octal, or Hexadecimal
1362(2)
Negative Binary Numbers: Two's Complement Notation
1364(5)
F Creating HTML Documentation with javadoc (on CD) 1369(15)
Introduction
1370(1)
Documentation Comments
1370(1)
Documenting Java Source Code
1370(9)
javadoc
1379(1)
Files Produced by javadoc
1379(5)
G Elevator Events and Listener Interfaces (on CD) 1384(9)
Introduction
1384(1)
Events
1384(4)
Listeners
1388(3)
Component Diagrams Revisited
1391(2)
H Elevator Model (on CD) 1393(45)
Introduction
1393(1)
Class ElevatorModel
1393(8)
Classes Location and Floor
1401(3)
Class Door
1404(4)
Class Button
1408(1)
Class ElevatorShaft
1409(7)
Classes Light and Bell
1416(4)
Class Elevator
1420(9)
Class Person
1429(7)
Component Diagrams Revisited
1436(1)
Conclusion
1436(2)
I Elevator View (on CD) 1438(27)
Introduction
1438(17)
Class Objects
1455(2)
Class Constants
1457(1)
Class constructor
1458(2)
Event Handling
1460(3)
ElevatorMoveEvent types
1461(1)
PersonMoveEvent types
1461(1)
DoorEvent types
1462(1)
ButtonEvent types
1462(1)
BellEvent types
1463(1)
LightEvent types
1463(1)
Component Diagrams Revisited
1463(1)
Conclusion
1463(2)
J Career Opportunities (on CD) 1465(24)
Introduction
1466(1)
Resources for the Job Seeker
1467(1)
Online Opportunities for Employers
1468(5)
Posting Jobs Online
1470(2)
Problems with Recruiting on the Web
1472(1)
Diversity in the Workplace
1472(1)
Recruiting Services
1473(2)
Testing Potential Employees Online
1474(1)
Career Sites
1475(6)
Comprehensive Career Sites
1475(1)
Technical Positions
1476(1)
Wireless Positions
1477(1)
Contracting Online
1477(1)
Executive Positions
1478(1)
Students and Young Professionals
1479(1)
Other Online Career Services
1480(1)
Internet and World Wide Web Resources
1481(8)
K Unicode® (on CD) 1489(12)
Introduction
1490(1)
Unicode Transformation Formats
1491(1)
Characters and Glyphs
1492(1)
Advantages/Disadvantages of Unicode
1493(1)
Unicode Consortium's Web Site
1493(1)
Using Unicode
1494(3)
Character Ranges
1497(4)
Bibliography 1501(5)
Index 1506

Supplemental Materials

What is included with this book?

The New copy of this book will include any supplemental materials advertised. Please check the title of the book to determine if it should include any access cards, study guides, lab manuals, CDs, etc.

The Used, Rental and eBook copies of this book are not guaranteed to include any supplemental materials. Typically, only the book itself is included. This is true even if the title states it includes any access cards, study guides, lab manuals, CDs, etc.

Rewards Program