| 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.
|