WA2099 - Introduction to Java using Rational Application Developer 8.0
Request a Class


COURSE COST: $2495.00

COURSE TIMES: 9:00am - 4:30pm

Printable version of this course


This course introduces the Java programming language and how to develop Java applications using RAD 8.0. Students learn the syntax of the Java programming language, object-oriented programming using Java, exception handling, generics, collections, and file input/output (I/O). During the course, students will develop and test Java applications using RAD 8.0. This course also covers a basic introduction to Java EE (Java Enterprise) since that is a common reason that people are learning about Java.

Throughout the course students will also work on a "project" which develops a complex Java application by applying principles learned to meet changing application requirements. This project is intended to simulate the programming environment they would encounter in real-world projects by providing application requirements and challenging the student to write Java code to meet those requirements.


This course is intended for programmers who are interested in adding Java to their skills.
The students should be familiar with object-oriented principles and the concept of object-oriented programming.


*Course Cost listed does not include the cost of courseware required in your registration. Please refer to your Invoice for the additional cost. If you have any questions, please contact us at learn@vtec.org or 207-775-0244. Course is subject to a minimum enrollment to run. If the minimum is not met then this class may run as a live online class.


After completing this course, the student should be able to:
Apply OOP principles
Design OO applications using abstraction, encapsulation, modularity and hierarchy
Create Java classes to define the function of different parts of a complex program
Use Java exceptions to guarantee graceful error recovery for your application
Use many common Java libraries
Do input/output using Java
Use RAD for Java application development

Overview of Java
History Of Java, Benefits Of Java
What Is Java?
What's This "Virtual Machine"?
Comparison to Other Languages
Java Programs
Basic Java Development Tools
Java Editions
Example – HelloWorld
Java Classes
Main Methods

Java Tools in RAD
Intro to RAD, Eclipse Platform
Eclipse Workspace, Perspectives, Views & Editors
Basic Operations with Eclipse Views and Perspectives
The Java Perspective, The Debug Perspective
Navigator View, Package Explorer
Outline View, Problems View
Eclipse Preferences,
Build and Validation
Code Completion, Templates and Snippets
Configure Compiler Class Path
JRE Switching

Basic Object Concepts
What Is An Object?
Encapsulation Examples
Classes vs. Objects
Benefits Of Objects

Basic Java Syntax
Declaring And Initializing Variables
Keywords, Coding Tips - Variables
Primitive Data Types, Logical - boolean
Textual - char and String
Integral - byte, short, int, long,
Floating Point - float and double, Literal Values
Strings, Creating Strings
White Space, Comments
Coding Tips - Comments, Java Statements
Coding Tips - Statements, Scope of a Variable
Scanner Class

Operations and Making Decisions
Operator Categories, Special Situations
Binary Operators, Integer Division
Numeric Promotion, Type Conversion Of Primitive Types
Unary Operators, Relational Operators
Logical Operators, Short Circuited" Operators, Bitwise Operators
Bitwise Examples, Shift Operators, Overflow And Underflow
Assignment Operators, Ternary Operator
Calculation Errors, Operator Precedence
Precedence Examples, Combining Strings
Coding Tips - Operators, Control Flow Statements
'if' Statement, 'if…else' Statement
Nested Statements, Coding Tips - if & if-else

Using Classes and Objects
Objects, Instances, And Classes
What Are Classes?
Working With Classes And Objects
Instantiation, Instance Methods
Object References,
String Operations
"Wrapper" Classes

Writing Classes
Why Define Your Own Classes?
Encapsulation, Elements Of A Class
Defining Classes, Coding Tips - Class Definitions
Fields, Defining Fields, Coding Tips - Fields
Methods, Defining Methods, Passing Parameters
Overloading Methods
Coding Tips - Methods
Local Variables vs. Instance Variables
Example - Defining a Class
Example - Fields
Example - Defining a Method
Example - Calling a Method

Controlling Code Access and Code Organization
Controlling Access
Data Hiding, Encapsulation
JavaBeans, Packages, Naming Packages
Declaring Packages In Classes
Problems Solved With Packages
Package Access
Example - Access Modifiers
Import Statement, Using Classes From Packages
Coding Tips - Import Statements
Correlation To File Structure, Class Path
Java Core Packages
Java API Documentation

Constructors and Class Members
Constructors, Default Constructor
Multiple Constructors, Defining Constructors
Example - Calling Constructors
"Good" Constructors, 'this' Keyword
Using 'this' to Call a Constructor, Using 'this' to Set a Field
Class Members, Examples Of Class Members
Comparison With Instance Members, Use Of Class Variables
Static Class Methods, Use Of Class Methods
The Math Class, Main Method And Command Line Arguments
Declaring Constants, Coding Tips - Class Members
Useful Standard Class Members, Initialization Blocks
tatic Initialization Blocks

Advanced Control Structures
'switch' Statement, Example - switch
Switch "Fall Through", Using switch "Fall Through" for Multiple Options
'for' Loop, Example - for, 'while' Loop
Example - while, 'do…while' Loop, Example - do while
Break Statement
Example - break
Labeled Statements, Example - Labeled break
Continue Statement
Example - continue
Example - Labeled continue
Coding Tips - Control Structures

Inheritance Is..., Inheritance Examples
Declaring Inheritance,
Inheritance Hierarchy
Access Modifiers Revisited
Inherited Members
Instances Of A Subclass
Example Of Inheritance, Role In Reuse
The super Keyword
Example - super Keyword
Problems with Constructors, Limiting Subclasses
Calling Methods in Constructors
The Object Class

Arrays, Declaring Arrays
Populating Arrays
Accessing Arrays
Arrays of Objects
Array Length
Coding Tips - Arrays
Array References
Multidimensional Arrays
Arrays Of Arrays, Copying Arrays
For-Each loop
Variable Arguments
Variable Arguments Example

Commonly Overridden Methods
Overriding Methods
@Override Annotation
toString(), toString() in Object
Overriding toString(), Comparing Objects
Using == vs. equals(..), Overriding equals(..)
Complex Comparisons, equals(..) Example
Overriding hashCode()
hashCode() Example
Generating equals and hashCode

Advanced Java Tools
Renaming Elements
Moving a Class to a Different Package
Extracting Code to a Method
Other Source Code Refactoring
Refactoring to Improve Type Hierarchy
Generalizing a Variable
Pull-up and Push-down

What is an Exception
, The Exception Class
How to Work With Exceptions, Example Exception Handling
The try-catch-finally Statement, Flow of Program Control
Exception Hierarchy, Checked Exceptions
Unchecked Exceptions
Coding Tips - Exception Types
Catching Multiple Exceptions
Specifying Thrown Exceptions
Rethrowing Exceptions
Chaining Exceptions
Creating your Own Exception

Interfaces and Polymorphism
Casting Objects, The instanceof Operator
Abstract Classes, Abstract Class - An Example
Interface, Interface - An Example
Comparable Interface, Comparable Example
Coding Tips - Superclass or Abstract Class/Interface?
Coding Tips – Abstract Class or Interface
Conditions for Polymorphism
Coding Tips - Leveraging Polymorphism
Covariant Return Types
Covariant Return Types – An Example

Useful Java Classes
Java Logging API, Control Flow of Logging
Logging Levels, Loggers, Logging Example
Logging Handlers
Logging Formatters & Log Manager
Logging Configuration File
Example Logging Configuration File, Logging Filters
java.lang.StringBuilder, java.util.StringTokenizer
java.util.Arrays & java.util.Collections
java.util.Random, java.util.Date
GregorianCalendar & Calendar
Formatting Example

Collections and Generics
What are Collections? Arrays vs. Collections
Main Collections Interfaces
java.util.Collection, Main Collection Methods
Sets, java.util.List, java.util.Queue
Iteration on a Collection
Iterator vs. For-Each Loop
Maps, java.util.Map, Other Maps
Collections Implementations
Abstract Implementations, Choosing a Collection Type
Generics, Generics and Collections
Generic Collection Example,
Collections and Primitive Types

Input and Output
Overview of Java Input/Output
The File Class, File Example, Serialization
Serializing Object State, Avoiding Serialization Problems
serialVersionUID, Options for File Input/Output
Streams, Input Stream, Output Stream, "Chained" Streams
RandomAccessFile, Using Streams - Write Example
Using Streams - Read Example, Reader and Writer
Using Readers and Writers - Write Example and Read Example
Using Readers and Writers - Scanner Read Example
Buffers, Channels
Using Buffers and Channels - Write Example
Using Buffers and Channels - Read Example

Other Java Concepts
Enumerated Types, Enumerated Types - Example
Assertions, Assertions Example
When to use Assertions
Enabling Assertions, JVM Storage Areas
Java Heap Space,
Heap Size Limits
Garbage Collection Basics
Allocation Failure (AF)
Memory Leak
Distributing Java Code with JARs

Overview of Java SE APIs
Java GUI Programming
Databases - JDBC
Concurrent Programming
Naming - JNDI
Management - JMX, XML
Web Services
Remote Method Invocation
Image I/O

Overview of Java EE
Goals of Enterprise Applications
What is Java?, What is Java EE?
The Java EE Specifications, Versions
Role of Application Server, Java EE Components
What is a Servlet?, Servlet Execution, What is a JSP?
JSP Code , What are Modules?, EAR File
Introduction to JSF, Example JSF Page
What is an EJB?, EJB Types, Java Persistence API
EJB Examples, Web Services,
Web Browser, Other Clients, Model-View-Controller Architecture
MVC - An Example, Java EE Vendor Specifications
Containers, Java EE Blueprint, Java EE Application Structure