Java for Mainframe Developers Course

Course Code: IN 298
Course Abstract:

This course provides the essentials of Java programming for mainframe application/software developers experienced in procedural programming languages. It covers an introduction to the Java language and the JVM, environment setup, creating the Source Code File, Java developing and the SDK; an overview of Object-Oriented Programming (OOP) including structured programming versus object-oriented; Java language basics including a comparison with COBOL; processing structures; using Objects; creating Classes; Packages; Class relationships; handling Runtime problems; Multi-Threading; and an exploration of the possibilities for Java including z/OS and OS/Java, Java in MVS Batch, connecting to legacy systems, resources for mainframe developers, JavaBeans, JNI, security, support APIs and major APIs, the JVC, JNDI, Servlets, EJB and much more. Optional topics include Java I/O, Java and relational databases, Collections and Inner Classes.

This hands-on course teaches programmers the essentials of Java programming. This material is uniquely geared to the mainframe developer, using the knowledge base of that audience to promote understanding of Java. It focuses on defining object programming and the syntax of Java 2, using comparisons to languages such as COBOL and PL/1 where possible.

Audience:

This course is designed for individuals who are Application/Software developers.

Duration: 5 days
Learning Outcomes: Upon completion of this course, the participant will be able to:

> Know Java's place in the programming world
> Apply the elements of object oriented design
> Contrast OO design vs. structural design
> Know the Java environment, especially the Virtual Machine
> Know data definition and manipulation in Java
> Create and use objects in Java, employing encapsulation, inheritance and polymorphism
> Become familiar with these essential low-level programming mechanisms: collections, exceptions and threads
> Provide a description of simple Java I/O Have sufficient foundation upon which to build advanced skills
Course Topics: Getting Acquainted
What is Java?
Java the Language
The Importance of the JVM
Impact of the JVM
Java the Technology
Java's Evolution
First Sip: Hello World
Set up the Environment
Create Source Code File
Compile and Run
Types of Java Programs
Developing in Java
JDK/SDK
Compiling with the SDK
Running with the SDK
SDK Documentation

Object-Oriented Programming
What on Earth IS OOP?
Structured Programming
Structured vs. OO Design
Objects and Classes
Modeling a Class
OO Languages
Abstraction
Encapsulation
An Object Hierarchy
Classes vs. Instances
Object Relationships

Java Language Basics
COBOL vs. Java
A COBOL Program
A Java Program
Java Class Structure
Class Definition
Main Method Definition
General Style
Naming Rules
Java Naming Conventions
Comments
Javadoc Comments
Using Memory Variables
Primitive Types
Declaring Variables
Literal Values
Constant Variables
Strings in Java
Using Strings
Handling Strings
Operators
Assignment
Concatenation
Arithmetic Operators
Unary Arithmetic Operators
Assignment Shortcuts
Casting

Processing Structures
Operators Again
Comparison
Logical
Bitwise
Conditional? Operator
Control Structures
Branching: if()
Branching: switch()
COBOL Version
Loops: for()
Loops: while()
Loops: do()
Displaying Output
Introduction to Arrays
Console Applications
Command Line Arguments

Using Objects
Objects & Classes
Class Members
Sample: TimeStamp Class
Object Notation
Using Dot Notation
Creating Objects
Constructors
JVM Memory Use
Memory for Primitives
Memory for Objects
Working with Objects
Comparing Objects
Common Objects
Using String Wisely
StringBuffer
String Example
StringBuffer Example
Array Concepts
Single Dimension Arrays
Multi-Dimension Arrays
Arrays from Literals
Using Arrays
Copying Arrays
Dates
GregorianCalendar
Where is GregorianCalendar?

Creating Classes
Java & Classes
Anatomy of a Class
General structure
Declaring a Class
Class Members
Declaring Variables
Local Variables
Local Variable Initialization
Instance Variables
Method Declaration Syntax
Method return values
Naming Methods
Object Property Methods
Methods for Booleans
Ordinary Methods
Method Overloading
Declaring Constructors
Explicit Constructors
Other Constructor Issues
Destructors
Tips on Clean Up
Self Reference
The Current Instance
this
Sibling Constructors
Static Members
Defining Static
static Example
The static Initializer
static & this
Putting it All Together

Packages
Java Packages
Major Packages
Using Packages
The import Statement
Classpath
Creating Packages
The Package Assignment
The Package Directory
Testing a Packaged class

Class Relationships
Java Design
Inheritance Overview
Inheritance Terminology
Implementing Inheritance
extends
Example of Using Ancestor Method
Creating a Client Instance
"Is a" Example
Casting
DownCasting Requirements
Downcasting at Runtime
Using instanceOf
Member Visibility
Overriding Methods
Using Ancestor Members
Overridden Methods
Using super
Parent Constructors
Polymorphism
Late Binding
Controlling Subclassing
abstract
Using abstract
The Shape Class
The Polygon Class
Triangle and Rectangle
Using the classes
Using final
final Method Example
Multiple Inheritance
Interfaces
Defining an Interface
Implementing an Interface
Interface Inheritance

Handling Runtime Problems
Exceptions
Causes of Problems
Runtime Problems
Java Classes for Exceptions
Java Classes
try/catch
The catch Block
catch Block Order
The finally Block
More on try / catch
Checked Exceptions
Throwing Exceptions
Rethrowing Exceptions
ReThrowing the Same Exception
Throwing a Different Exception
Custom Exceptions
Defining Exceptions

Multi-Threading
What is a Thread?
Java and Multi-Threading
A Non-Threaded App
The Thread Class
Using the Thread Class
Extend Thread
Write a Runnable Class
Thread in Runnable
Which is Better?
Threadyield()
More Thread Methods
Runnable State
Timing Threads
Runnable Read File
Run the Read program
Synchronization

Where to Go With Java
Java's Role
Review: Types of Java Programs
zOS & OS/ Java
zOS Platform Requirements
zOS Unix System Services
Java in MVS Batch
Connecting to Legacy Systems
Visual Age for Java
Special Resources for Mainframe Developers
Some Things to consider
JavaBeans
JNI
Security
Reflection
Support APIs
JFC
Advanced Graphics
Networking
Distributed Objects
JNDI
XML
Other Support APIs
Major APIs
JavaServer & Servlets
EJB
Jini
Other Major APIs
Where We've Been

Optional Topics
Java I/O
Types of I/O in Java
Java I/O Concepts
Sequential I/O in COBOL
Sequential Text Read
Class used for Data Description
Sequential Text Write
Sequential Binary Write
Sequential Binary Read
Object Persistence
Serialization Notes

Java and Relational Databases
Using Relational Database
JDBC Versions
javasql
JDBC: The Basic Approach
DataBase I/O Example
Handling SQL in JDBC
PreparedStatement Example

Collections
Collections in Java
Lists
javautilList Interface
Using Lists
ArrayList Example
Stack
Maps
Maps Methods
Properties
Using Properties
System Properties
Setting System Properties
Enumeration
Getting an Enumeration
Using Enumeration
Iterator

Inner Classes
Types of Inner Classes
Inner Classes Example
Referring to Inner Classes
Prerequisites:

Programming experience is required. As noted above this course is geared to mainframe programmers, knowledge of procedural programming languages is assumed. Programmers with OO and/or C++ experience are advised to take the Java Programming Introduction or Fundamentals of Java Programming class.

Note: All fields are required
At the present time we do not offer training for individuals or groups less then 6 individuals. We apologize for any inconvenience.


We Value Your Privacy!

Ready to get started or in need of more information? Contact us today.

Go To Blog Virtual Learning