Description
Fully revised and updated to reflect the most recent features in Java 7 and Java 8, Java Illuminated, Fourth Edition is one of the most interactive and user-friendly texts available.
Comprehensive but accessible, the text takes a progressive approach to object-oriented programming, allowing students to build on established skills to develop new and increasingly complex classes. Java Illuminated follows an activity-based active learning approach that ensures student engagement and interest. This Fourth Edition now includes techniques for producing graphical output and animations using both applets and graphical applications. Packed with real-world applications and student activities, Java Illuminated, Fourth Edition, will draw students in to the world of programming. Please note eBook does not include CodeLab or Navigate 2.
Table of Contents
- Cover
- Title Page
- Copyright
- Dedication
- Contents
- Preface
- Turing’s Craft CodeLab Student Registration Instructions
- Acknowledgments
- Chapter 1 Introduction to Programming and the Java Language
- 1.1 Basic Computer Concepts
- 1.1.1 Hardware
- 1.1.2 Operating Systems
- 1.1.3 Application Software
- 1.1.4 Computer Networks and the Internet
- 1.2 Practice Activity: Displaying System Configuration
- 1.2.1 Displaying Windows Configuration Information
- 1.2.2 Displaying Mac OS Configuration Information
- 1.3 Data Representation
- 1.3.1 Binary Numbers
- 1.3.2 Using Hexadecimal Numbers to Represent Binary Numbers
- 1.3.3 Representing Characters with the Unicode Character Set
- 1.4 Programming Languages
- 1.4.1 High- and Low-Level Languages
- 1.4.2 An Introduction to Object-Oriented Programming
- 1.4.3 The Java Language
- 1.5 An Introduction to Programming
- 1.5.1 Programming Basics
- 1.5.2 Program Design with Pseudocode
- 1.5.3 Developing a Java Application
- 1.5.4 Programming Activity 1: Writing a First Java Application
- Debugging Techniques
- Testing Techniques
- 1.6 Chapter Summary
- 1.7 Exercises, Problems, and Projects
- 1.1 Basic Computer Concepts
- Chapter 2 Programming Building Blocks—Java Basics
- 2.1 Java Application Structure
- 2.2 Data Types, Variables, and Constants
- 2.2.1 Declaring Variables
- 2.2.2 Integer Data Types
- 2.2.3 Floating-Point Data Types
- 2.2.4 Character Data Type
- 2.2.5 Boolean Data Type
- 2.2.6 The Assignment Operator, Initial Values, and Literals
- 2.2.7 String Literals and Escape Sequences
- 2.2.8 Constants
- 2.3 Expressions and Arithmetic Operators
- 2.3.1 The Assignment Operator and Expressions
- 2.3.2 Arithmetic Operators
- 2.3.3 Operator Precedence
- 2.3.4 Programming Activity 1: Converting Inches to Centimeters
- 2.3.5 Integer Division and Modulus
- 2.3.6 Division by Zero
- 2.3.7 Mixed-Type Arithmetic and Type Casting
- 2.3.8 Shortcut Operators
- 2.4 Programming Activity 2: Temperature Conversion
- 2.5 Chapter Summary
- 2.6 Exercises, Problems, and Projects
- Chapter 3 Object-Oriented Programming, Part 1: Using Classes
- 3.1 Class Basics and Benefits
- 3.2 Creating Objects Using Constructors
- 3.3 Calling Methods
- 3.4 Using Object References
- 3.5 Programming Activity 1: Calling Methods
- 3.6 The Java Class Library
- 3.7 The String Class
- The length Method
- The toUpperCase and toLowerCase Methods
- The indexOf Methods
- The charAt and substring Methods
- 3.8 Formatting Output with the DecimalFormat Class
- 3.9 Generating Random Numbers with the Random Class
- 3.10 Input from the Console Using the Scanner Class
- 3.11 Calling Static Methods and Using Static Class Variables
- 3.12 Using System.in and System.out
- 3.13 The Math Class
- The pow Method
- The round Method
- The min and max Methods
- 3.14 Formatting Output with the NumberFormat Class
- 3.15 The Integer, Double, and Other Wrapper Classes
- 3.16 Input and Output Using JOptionPane Dialog Boxes
- 3.17 Programming Activity 2: Using Predefined Classes
- 3.18 Chapter Summary
- 3.19 Exercises, Problems, and Projects
- Chapter 4 Introduction to Applets and Graphical Applications
- 4.1 Applet Structure
- 4.2 Executing an Applet
- 4.3 Drawing Shapes with Graphics Methods
- 4.4 Using Color
- 4.5 Programming Activity 1: Writing an Applet with Graphics
- 4.6 Graphical Applications
- 4.7 Chapter Summary
- 4.8 Exercises, Problems, and Projects
- Chapter 5 Flow of Control, Part 1: Selection
- 5.1 Forming Conditions
- 5.1.1 Equality Operators
- 5.1.2 Relational Operators
- 5.1.3 Logical Operators
- DeMorgan’s Laws
- 5.2 Simple Selection with if
- 5.3 Selection Using if/else
- Block Scope
- 5.4 Selection Using if/else if
- 5.5 Sequential and Nested if/else Statements
- 5.5.1 Sequential if/else Statements
- Finding the Minimum or Maximum Values
- 5.5.2 Nested if/else Statements
- Dangling else
- 5.6 Testing Techniques for if/else Statements
- 5.7 Programming Activity 1: Working with if/else
- 5.8 Comparing Floating-Point Numbers
- 5.9 Comparing Objects
- 5.9.1 The equals Method
- 5.9.2 String Comparison Methods
- 5.10 The Conditional Operator (?:)
- 5.11 The switch Statement
- 5.12 Programming Activity 2: Using the switch Statement
- 5.13 Chapter Summary
- 5.14 Exercises, Problems, and Projects
- 5.1 Forming Conditions
- Chapter 6 Flow of Control, Part 2: Looping
- 6.1 Event-Controlled Loops Using while
- 6.2 General Form for while Loops
- 6.3 Event-Controlled Looping
- 6.3.1 Reading Data from the User
- 6.3.2 Reading Data from a Text File
- 6.4 Looping Techniques
- 6.4.1 Accumulation
- 6.4.2 Counting Items
- 6.4.3 Calculating an Average
- 6.4.4 Finding Maximum or Minimum Values
- 6.4.5 Animation
- 6.5 Type-Safe Input Using Scanner
- 6.6 Constructing Loop Conditions
- 6.7 Testing Techniques for while Loops
- 6.8 Event-Controlled Loops Using do/while
- 6.9 Programming Activity 1: Using while Loops
- Task Instructions
- Troubleshooting
- 6.10 Count-Controlled Loops Using for
- 6.10.1 Basic Structure of for Loops
- 6.10.2 Constructing for Loops
- 6.10.3 Testing Techniques for for Loops
- 6.11 Nested Loops
- 6.12 Programming Activity 2: Using for Loops
- Instructions
- Troubleshooting
- 6.13 Chapter Summary
- 6.14 Exercises, Problems, and Projects
- Chapter 7 Object-Oriented Programming, Part 2: User-Defined Classes
- 7.1 Defining a Class
- 7.2 Defining Instance Variables
- 7.3 Writing Class Methods
- 7.4 Writing Constructors
- 7.5 Writing Accessor Methods
- 7.6 Writing Mutator Methods
- 7.7 Writing Data Manipulation Methods
- 7.8 Programming Activity 1: Writing a Class Definition, Part 1
- 7.9 The Object Reference this
- 7.10 The toString and equals Methods
- 7.11 Static Class Members
- 7.12 Graphical Objects
- 7.13 Enumeration Types
- 7.14 Programming Activity 2: Writing a Class Definition, Part 2
- 7.15 Creating Packages
- 7.16 Generating Web-Style Documentation with Javadoc
- 7.17 Chapter Summary
- 7.18 Exercises, Problems, and Projects
- Chapter 8 Single-Dimensional Arrays
- 8.1 Declaring and Instantiating Arrays
- 8.1.1 Declaring Arrays
- 8.1.2 Instantiating Arrays
- 8.1.3 Combining the Declaration and Instantiation of Arrays
- 8.1.4 Assigning Initial Values to Arrays
- 8.2 Accessing Array Elements
- 8.3 Aggregate Array Operations
- 8.3.1 Printing Array Elements
- 8.3.2 Reading Data into an Array
- 8.3.3 Summing the Elements of an Array
- 8.3.4 Finding Maximum or Minimum Values
- 8.3.5 Copying Arrays
- 8.3.6 Changing the Size of an Array
- 8.3.7 Comparing Arrays for Equality
- 8.3.8 Displaying Array Data as a Bar Chart
- 8.4 Programming Activity 1: Working with Arrays
- Instructions
- Troubleshooting
- 8.5 Using Arrays in Classes
- 8.5.1 Using Arrays in User-Defined Classes
- 8.5.2 Retrieving Command Line Arguments
- 8.6 Searching and Sorting Arrays
- 8.6.1 Sequential Search of an Unsorted Array
- 8.6.2 Selection Sort
- 8.6.3 Insertion Sort
- 8.6.4 Sorting Arrays of Objects
- 8.6.5 Sequential Search of a Sorted Array
- 8.6.6 Binary Search of a Sorted Array
- 8.7 Programming Activity 2: Searching and Sorting Arrays
- Instructions
- Troubleshooting
- 8.8 Using Arrays as Counters
- 8.9 Accepting a Variable Number of Arguments
- 8.10 Chapter Summary
- 8.11 Exercises, Problems, and Projects
- 8.1 Declaring and Instantiating Arrays
- Chapter 9 Multidimensional Arrays and the ArrayList Class
- 9.1 Declaring and Instantiating Multidimensional Arrays
- 9.1.1 Declaring Multidimensional Arrays
- 9.1.2 Instantiating Multidimensional Arrays
- 9.1.3 Combining the Declaration and Instantiation of Multidimensional Arrays
- 9.1.4 Assigning Initial Values to Multidimensional Arrays
- 9.2 Accessing Multidimensional Array Elements
- 9.3 Aggregate Two-Dimensional Array Operations
- 9.3.1 Processing All the Elements of a Two-Dimensional Array
- 9.3.2 Processing a Given Row of a Two-Dimensional Array
- 9.3.3 Processing a Given Column of a Two-Dimensional Array
- 9.3.4 Processing a Two-Dimensional Array One Row at a Time
- 9.3.5 Processing a Two-Dimensional Array One Column at a Time
- 9.3.6 Displaying Two-Dimensional Array Data as a Bar Chart
- 9.4 Two-Dimensional Arrays Passed to and Returned from Methods
- 9.5 Programming Activity 1: Working with Two-Dimensional Arrays
- Instructions
- Troubleshooting
- 9.6 Other Multidimensional Arrays
- 9.7 The ArrayList Class
- 9.7.1 Declaring and Instantiating ArrayList Objects
- 9.7.2 Methods of the ArrayList Class
- 9.7.3 Looping Through an ArrayList Using an Enhanced for Loop
- 9.7.4 Using the ArrayList Class in a Program
- 9.8 Programming Activity 2: Working with the ArrayList Class
- Instructions
- Troubleshooting
- 9.9 Chapter Summary
- 9.10 Exercises, Problems, and Projects
- 9.1 Declaring and Instantiating Multidimensional Arrays
- Chapter 10 Object-Oriented Programming, Part 3: Inheritance, Polymorphism, and Interfaces
- 10.1 Inheritance
- 10.2 Inheritance Design
- 10.2.1 Inherited Members of a Class
- 10.2.2 Subclass Constructors
- 10.2.3 Adding Specialization to the Subclass
- 10.2.4 Overriding Inherited Methods
- 10.3 The protected Access Modifier
- 10.4 Programming Activity 1: Using Inheritance
- Instructions
- 10.5 Abstract Classes and Methods
- 10.6 Polymorphism
- 10.7 Programming Activity 2: Using Polymorphism
- Instructions
- 10.8 Interfaces
- 10.9 Chapter Summary
- 10.10 Exercises, Problems, and Projects
- Chapter 11 Exceptions and Input/Output Operations
- 11.1 Simple Exception Handling
- 11.1.1 Using try and catch Blocks
- 11.1.2 Catching Multiple Exceptions
- 11.1.3 User-Defined Exceptions
- 11.2 The java.io Package
- 11.3 Reading Text Files Using Scanner
- 11.4 Writing and Appending to Text Files
- 11.4.1 Writing to Text Files
- 11.4.2 Appending to Text Files
- 11.5 Reading Structured Text Files
- 11.5.1 Parsing a String Using Scanner
- 11.5.2 Reading Structured Data Using Scanner
- 11.6 Programming Activity 1: Reading from a Structured Text File
- Instructions
- If you have time …
- Troubleshooting
- 11.7 Reading and Writing Objects to a File
- 11.7.1 Writing Objects to Files
- 11.7.2 Reading Objects from Files
- 11.8 Programming Activity 2: Reading Objects from a File
- Task Instructions: Reading from the transactions.obj File
- If you have time …
- Troubleshooting
- 11.9 Chapter Summary
- 11.10 Exercises, Problems, and Projects
- 11.1 Simple Exception Handling
- Chapter 12 Graphical User Interfaces
- 12.1 GUI Applications Using JFrame
- 12.2 GUI Components
- 12.3 A Simple Component: JLabel
- 12.4 Event Handling
- 12.5 Text Fields
- 12.6 Command Buttons
- 12.7 Radio Buttons and Checkboxes
- 12.8 Programming Activity 1: Working with Buttons
- Instructions
- Troubleshooting
- 12.9 Combo Boxes
- 12.10 Adapter Classes
- 12.11 Mouse Movements
- 12.12 Layout Managers: GridLayout
- 12.13 Layout Managers: BorderLayout
- 12.14 Using Panels to Nest Components
- 12.15 Programming Activity 2: Working with Layout Managers
- Instructions
- 12.16 Chapter Summary
- 12.17 Exercises, Problems, and Projects
- Chapter 13 Recursion
- 13.1 Simple Recursion: Identifying the General and Base Cases
- 13.2 Recursion with a Return Value
- 13.2.1 Computing the Factorial of a Number
- 13.2.2 Computing the Greatest Common Divisor
- 13.3 Recursion with Two Base Cases
- 13.4 Programming Activity 1: Checking for a Palindrome
- Instructions
- Task Instructions
- Troubleshooting
- 13.5 Binary Search: A Recursive Solution
- 13.6 Programming Activity 2: The Towers of Hanoi
- Instructions
- Task Instructions
- Troubleshooting
- 13.7 Recursion Versus Iteration
- 13.8 Chapter Summary
- 13.9 Exercises, Problems, and Projects
- Chapter 14 An Introduction to Data Structures
- 14.1 Linked Lists
- 14.1.1 Linked-List Concepts and Structure
- 14.1.2 Linked-List Basics
- 14.1.3 Methods of a Linked List
- 14.1.4 Testing a Linked-List Class
- 14.2 Linked Lists of Objects
- 14.2.1 A Linked-List Shell
- 14.2.2 Generating an Exception
- 14.2.3 Other Methods of a Linked List
- 14.2.4 Testing a Linked-List Class
- 14.3 Implementing a Stack Using a Linked List
- 14.4 Implementing a Queue Using a Linked List
- 14.5 Array Representation of Stacks
- 14.6 Programming Activity 1: Writing Methods for a Stack Class
- Instructions
- Troubleshooting
- 14.7 Array Representation of Queues
- 14.8 Sorted Linked Lists
- 14.9 Programming Activity 2: Writing Insert and Delete Methods for a Sorted Linked List
- Instructions
- Troubleshooting
- 14.10 Doubly Linked Lists
- 14.11 Linked Lists Using Generic Types
- 14.12 Recursively Defined Linked Lists
- 14.13 Chapter Summary
- 14.14 Exercises, Problems, and Projects
- 14.1 Linked Lists
- Chapter 15 Running Time Analysis
- 15.1 Orders of Magnitude and Big-Oh Notation
- 15.2 Running Time Analysis of Algorithms: Counting Statements
- 15.3 Running Time Analysis of Algorithms and Impact of Coding: Evaluating Recursive Methods
- Handwaving Method
- Iterative Method
- Proof by Induction Method
- Other Methods
- 15.4 Programming Activity: Tracking How Many Statements Are Executed by a Method
- Instructions
- Troubleshooting
- 15.5 Running Time Analysis of Searching and Sorting Algorithms
- 15.6 Chapter Summary
- 15.7 Exercises, Problems, and Projects
- Appendix A: Java Reserved Words and Keywords
- Appendix B: Operator Precedence
- Appendix C: The Unicode Character Set
- Appendix D: Representing Negative Integers
- Appendix E: Representing Floating-Point Numbers
- Appendix F: Java Classes APIs
- ActionEvent
- ActionListener Interface
- ArrayList
- BigDecimal
- BorderLayout
- ButtonGroup
- Character
- Color
- Container
- DecimalFormat
- Double
- Enum
- Exception
- File
- FileOutputStream
- FlowLayout
- Graphics
- GridLayout
- Insets
- Integer
- ItemEvent
- ItemListener Interface
- JButton
- JCheckBox
- JComboBox
- JComponent
- JFrame
- JLabel
- JOptionPane
- JPasswordField
- JRadioButton
- JTextArea
- JTextField
- Math
- MouseEvent
- MouseListener Interface
- MouseMotionListener Interface
- NumberFormat
- ObjectInputStream
- ObjectOutputStream
- Polygon
- PrintWriter
- Random
- Scanner
- String
- System
- Appendix G: Solutions to Selected Exercises
- Index
Authors Biography
Julie Anderson, MS – Rollins College
Julie A. Anderson has seventeen years of teaching experience, and is recently retired from Rollins College. She has co-authored college textbooks on Java and Python. She also has fifteen years of experience as a technology writer, editor, and columnist for computer publications with an emphasis on databases and programming. She began her computing career as a software developer. She holds a Master of Science degree in Computer Science from Johns Hopkins University.
Hervé J. Franceschi – University of Maryland, College Park
Hervé Franceschi has a mathematics and computer science background with extensive teaching experience. He likes to assign exercises and problems from a variety of angles, as well as an occasional group project where students can develop communication skills in addition to working on more complex projects. In addition to his teaching duties, Mr. Franceschi has developed a full set of browser-enabled, user interactive, shockwave movies for the CS1 curriculum and part of the CS2 curriculum. He holds an MS in Engineering Management from Stanford University and an MS in Computer Science from University of Maryland Baltimore County.
Additional information
| Weight | 1.644 kg |
|---|
Only logged in customers who have purchased this product may leave a review.
Related Products









Reviews
There are no reviews yet.