Introduction to Java
- Overview: Introduction to Java
- History of Java
- What You Need to Write Java
- Types of Java Programs
- Java Comments
- Java Naming Conventions
- Java Keywords
- General Code Structure
- A Simple Java Program
- The Java Development Cycle
- Object-Oriented Programming
- Java Class Structure
- Java Types and Variables
- Declaration and Initialization
- Java Methods
- The "return" Keyword
- Object Constructors and "new"
- Java Packages and "import"
- Code, Compile, and Test an Object
- Web of Communicating Objects
- Multiple Classes in the Same File
- Review: Introduction to Java
- Lab: Introduction to Java
Java Data Types
- Overview: Java Data Types
- Primitive Types
- Special Literal Values
- Operators
- Non-primitive Types: Classes
- Classes: Types and Modules
- Assigning Primitives vs. Objects
- Changing Primitives vs. Objects
- Strings: a Special Class
- Assignment & Immutability
- Generic Types
- Variable Scope
- Declaration and Initialization
- Initialization Defaults
- Instance vs. Static Variables
- Inheritance In Java
- Inheritance Hierarchies
- Legal Assignments to Variables
- Explicit Casts
- Casting of Primitives
- Review: Java Data Types
- Lab: Java Data Types
Java Methods
- Overview: Java Methods
- Classes: Modules and Types
- Java Methods
- The "return" Keyword
- Calling a Method
- Static Methods
- Encapsulation and Privacy
- Accessor and Mutator Methods
- Encapsulation in the Java API
- The "this" Keyword
- Overloading Methods
- Methods and Inheritance
- Overriding Methods
- Calls to Superclass's Methods
- Review: Java Methods
- Lab: Java Methods
Java Control Structures
- Overview: Java Control Structures
- If/Else
- Switch/Case/Default
- While and Do/While
- For Loop
- Logical for Loop
- Break and Continue
- Labeled Loops
- Logical And (&&) and Or (||)
- Java Arrays
- Array Elements and Initialization
- Arrays are Objects
- Object Groups & Polymorphism
- Command Line Arguments
- Garbage Collection
- Review: Java Control Structures
- Lab: Java Control Structures
RAD Concepts
- Workbench Features and Supported Standards
- Eclipse, Workbench, Workspaces and Perspectives
- Enabling Roles and Capabilities
- Creating Projects and Setting Project Properties
RAD: The Java Perspective
- Creating Packages and Classes
- Java Editor Features
- Pop-up Outlines and Folding
- Code and Content Assist
- Import Assistance and Refactoring
Java Classes
- Overview: Java Classes
- Features of a Java Class
- Inheritance of Classes
- The "Object" Class
- Inheritance vs. Containment Hierarchies
- Java Modifiers
- Access Modifiers
- General Modifiers
- Specialized Modifiers
- The "final" Modifier
- Abstract Classes and Methods
- Inheriting from Abstract Classes
- Java Interfaces
- Inheriting from Interfaces
- Multiple Inheritance
- Interfaces and Polymorphism
- Review: Java Classes
- Lab: Java Classes
Java Event Handling
- Overview: Java Event Handling
- Java Event Model
- java.awt.event Events
- java.awt.event Listeners
- Working with Events
- Listener Definition
- Listener Registration
- Listener Registration and Events
- Example of Event Handling
- Component Listeners and Events
- Lab: Java Event Handling
Constructors & Other Topics
- Overview: Constructors, etc.
- Defining Constructors
- No-Parameter Constructor
- this() to Call Other Constructors
- super() to call super-constructor
- Implicit Call to super()
- Defining New Java Packages
- Compiling Classes in Packages
- Package Use in Other Classes
- Finding Classes in the Classpath
- Automating Commands
- Access Modifiers
- Javadoc Document Generation
- Javadoc Markup Syntax
- Using the Javadoc Utility
- Annotations in Java
- Review: Constructors, etc.
- Lab: Constructors, etc.
- RAD: Debug Perspective
- Debug Options and Views
- Line Breakpoints, Exception Breakpoints, Method Breakpoints and Watchpoints
- Breakpoint Properties: Defining Conditional Breakpoints and Hit Counts
- Debug Actions
- Step-by-Step Debugging
The java.lang Package
- Overview: java.lang Package
- java.lang Hierarchy
- The Object Class
- Methods of the Object class
- Example: Object Equality Test
- Cloneable Interface
- Shallow vs. Deep Clones
- Comparable Interface
- Strings: a Special Class
- Assignments & Immutability
- String Methods
- StringBuffer
- Primitive Wrappers
- Math Methods
- System
- Class
- Review: The java.lang Package
- Lab: The java.lang Package
Java Exceptions
- Overview: Java Exceptions
- Exception Hierarchy
- Types of Java Errors
- Methods of Throwable
- Exception Generation
- Handling Exceptions: try/catch
- Handling Multiple Exceptions
- Handling Exceptions: finally
- Exceptions in finally Block
- Throwing to Calling Method
- Re-Throwing Exceptions
- Re-Typing Exceptions
- Runtime (Unchecked) Exceptions
- Use Of Unchecked Exceptions
- Processing in the Catch Block
- Defining New Exception Types
- Review: Java Exceptions
- Lab: Java Exceptions
The java.util Package
- Overview: java.util Package
- java.util Hierarchy
- Date
- Calendar
- java.text.DateFormat
- Java's "Old" Collections: Vector
- Enumeration
- Hashtable
- Collections Hold Generic Objects
- Java's New Collections
- Collection Hierarchy
- Interfaces vs. Concrete Collections
- Lab: java.util Package
- Lab: Sales Person Flow
Java Input/Output
(If desired, this topic can be replaced with one covering access to SQL DBs)
- Overview: Java Input/Output
- Java I/O Through Streams
- java.io Byte Streams
- java.io Character Streams
- Stream Chaining
- Multiple Stream Chaining
- Common Stream Methods
- Stream Exception Handling
- File Input Example
- File Output Example
- System Streams
- The File Class
- Platform-Neutral File Access
- Object Serialization in Java
- The Serializable Interface
- Marking Properties as Transient
- Serializable Class Prerequisites
- Serialized Object Trees
- Using Object Output Streams
- Using Object Input Streams
- Serial Versions
- Custom Serialization
- FileDialog and JFileChooser
- Review: Java Input/Output
- Lab: Basic Input/Output
- Lab: Object Serialization
RAD: JUnit
- RAD Testing Support
- Adding JUnit to the Workspace
- Creating JUnit Test Cases and Suites
- Running JUnit Tests
- Using the JUnit View
- Guidelines and Recommendations
This course is designed for programmers who need to develop object-oriented Java programming skills. Programming experience is necessary in order to gain the full benefits of this training course.
Programming experience in a language like Cobol, C, .NET or the equivalent is required. Object-oriented programming concepts is not necessary in order to gain the full benefits of this course.
Instructor led with 50% lecture and 50% lab.