Session: Java: A First Look
Lesson: Using the JDK
- Setting Up Environment
- The Development Process
- Locating Class Files
- Compiling Package Classes
- Source and Class Files
- Applications and Applets
Lesson: Writing a Simple Class
- Classes in Java™
- What Is a Class?
- Defining the Class
- Class Modifiers
- Class Instance Fields
- Instance Fields Diagram
- Primitives vs. Object References
- Creating Objects
- The main Method
- Using the Dot Operator
- Writing Output
Lesson: The Java™ Platform
- Defining Java
- Java Provides Several Platforms
- Note on Terminology
- Java SE 6
- Java SE Development Kit (JDK)
- Executing Programs
- Lifecycle of a Java Program
- Responsibilities of JVM
- Java is Dynamic: The Runtime Process
- Primary Areas of the JVM Runtime
- Garbage Collection
- Documentation and Code Reuse
- JavaDoc Provides Documentation Delivery
- In-Line Comments are Translated into HTML Rendering
- Working with Java in Your Environment
Session: Object-Oriented Concepts In Java
Lesson: Object-Oriented Programming
- The Object Oriented Way
- Real-World Objects
- Classes and Objects
- Examples of Classes and Objects
- Classes and Objects Diagram
- Object Behavior
- Methods and Messages
Lesson: Inheritance, Abstraction, and Polymorphism
- Encapsulation
- Inheritance
- Method Overriding
- Aggregation
- Type Abstraction - Grouping as Supertype
- Polymorphism
- Polymorphism Diagram
Session: Getting Started with Java™
Lesson: Adding Methods to the Class
- Instance Methods
- Passing Parameters Into Methods
- Returning a Value From a Method
- Overloaded Methods
- Overloaded Methods Diagram
- Constructors
- Defining a Constructor
- Optimizing Constructor Usage
Lesson: Language Statements
- Operators
- Comparison and Logical Operators
- Looping: The for Statement
- Looping: The while Statement
- Looping: The do Statement
- Continue and Break Statements
- The switch Statement
Lesson: Using Strings
- Strings
- String Method
- String Equality
- StringBuffer
- Strings, StringBuffer, and StringBuilder
- StringTokenizer
- Scanner
- Scanner - File Source
- Scanner - Getting Input
- Scanner - Testing for Tokens
- Scanner - Patterns for Tokens
- Formatter
- Formatter - Probable First Encounters
- Formatter - StringBuffer
Lesson: Specializing in a Subclass
- Extending a Class
- The extends Keyword
- Casting
- Overriding Superclass Methods
- Method Overriding Diagram
- Calling Superclass Methods from Subclass
- The Object Class
- The equals Method
- Default Constructor
- Implicit Constructor Chaining
- Passing Data Up Constructor Chain
- A Common Programming Mistake
- Editing Tools in Your IDE
Session: Essential Java™ Programming
Lesson: Fields and Variables
- Fields vs. Variables
- Data Types
- Default Values
- Block Scoping Rules
- Using this
- Final and Static Fields
- Static Variable Diagram
Lesson: Using Arrays
- Arrays
- Accessing the Array
- Multidimensional Arrays
Lesson: Static Methods and Fields
- Static Fields
- Simple Example of Static Fields
- Static Methods
Lesson: Java™ Packages
- The Problem
- Packages
- Class Location of Packages
- The Package Keyword
- Importing Classes
- Executing Programs
- Visibility
- Java Naming Conventions
- Packages Diagram
- Refactoring in Your IDE
Session: Advanced Java™ Programming
Lesson: Inheritance and Polymorphism
- Polymorphism
- Polymorphism: The Subclasses
- Treating Derived Classes as the Superclass
- Casting to the Derived Class
- Using instanceof For Downcasting
- Upcasting vs. Downcasting
- Calling Superclass Methods From Subclass
- The final Keyword
Lesson: Interfaces and Abstract Classes
- Separating Capability from Implementation
- Abstract Classes
- Shape as an Abstract Class
- Polymorphism With Abstract Classes
- Interfaces
- Implementing an Interface
- Extending Interfaces
- Polymorphism With Interfaces
- Type Checking
- Abstract Classes vs. Interfaces
- Interfaces Diagram
Lesson: Exceptions
- What is an Exception?
- Exception Architecture
- Handling Exceptions
- The Throwable Class
- The try Block
- The catch Block
- The finally Block
- Full Example of Exception Handling
- Generalized vs. Specialized Exceptions
- Overriding Methods
- Creating Your Own Exceptions
- Throwing Exceptions
- Re-throwing an Exception
- Checked vs. Unchecked Exceptions
- Debugging in Your IDE
Session Java™ Developer's Toolbox
Lesson: Utility Classes
- Wrapper Classes
- The Number Class
- Numbers and Strings
- Big Decimal
- Random Numbers
- Decimal Formatting
- The Date Class
Lesson: Vector and Hashtable
- The Vector Class
- Creating and Using a Vector
- Java Collections Methods in Vector
- Hashtables
- Understanding How Hashing Works
- Creating and Using a Hashtable
- Performing Lookups
Lesson: Collections
- The Collections Framework
- Collections Feature Types
- Collections Interface Hierarchy
- Map Interfaces
- Optional Methods
- The Collection Interface
- Iterators
- The Set Interface
- SortedSet
- Set and SortedSet Example
- Comparable and Comparator
- The List Interface
- List Example
- ListIterator
- Queue Interface
- QueueExample
- BlockingQueue
- BlockingQueue Implementations
- Collections Utility Methods
- Features of the Implementation Classes
- Synchronization Wrappers
- Feature Comparison
- Using the Right Collection
- Use of Collections vs. Vector/Hashtable
- Optimizing Collection Constructors
- Copying Arrays
- Creating and Using an ArrayList
- Creating and Using a HashMap
Lesson: Generics
- Generics and Parametric Polymorphism
- Simple Generics
- The Mechanics of Generics
- Generics and Subtyping
- Compiler Restrictions on Generics and Subtyping
- Generics as Arguments in Methods
- Rationale Behind Wildcards
- Wildcards In Use
- Regular Wildcards in Method Parameters
- Bounded Wildcards
- Standard Rules Apply
- Generic Methods
- Interoperability with Legacy Code
- Raw Types
- Legacy Calls To Generics
- When Generics Should Be Used
- Build Paths in Your IDE
Lesson: Overview of Java GUIs
- JFC - Java Foundation Classes
- Categories of Classes in JFC
- Creating the Frame
- Adding Content to a Frame
- A Closer Look at Layout Managers
- BorderLayout
- JFC Provides an Event Handling Structure
- Switching Java Versions in Your IDE
LABS: There are over 20 hands-on lab exercises and challenges laced throughout this course. Please ask us for lab details.
Case Study: A complete case study provides an incremental series of labs covering requirements analysis, design, implementation, and refactoring. A complete set of solutions are also included, enabling the case study to be used after class as a homework assignment, tool for review, or a reference.