699 Windsong Trail
Austin, Texas 78746

Object-Oriented Programming in Java

Course Name: Object-Oriented Programming In Java.

Course Overview: This five-day course covers the fundamentals of programming Java.  Both the language and some of the standard packages are covered. Numerous exercises and laboratories provide students "hands on" experience with Java.  This course emphasizes the development of applications, and only lightly covers applets and graphical user interfaces (GUIs).

Course Audience: This course is aimed at anyone wanting to write applications in Java.

Course Prerequisites:  Knowledge of basic programming concepts is required.  Knowledge of C is helpful but is not required.  Knowledge of C++ or of object-oriented concepts is not required.  (If all students in a course are familiar with these subjects, presentation of the course material can be accelerated and more complicated programming laboratories will be assigned.)

Course Outline:

Introduction:  The "compile once, run many" paradigm.  A first Java program.  Tools for compiling, interpreting, and debugging Java programs.  An outline of the course.

Control Flow Constructs:  Java’s lexical conventions.  Types and type conversion.  Implicit conversion and explicit casting.  Operators.  Control flow statements.

Classes and Objects:  The concepts, syntax, and semantics for classes.  Instantiating objects.  Constructors and initializers.  Encapsulation.  Static fields and methods.

Specialization:  Class specialization through extension (i.e., subclassing).  Inheritance of implementation.  Calling superclass constructors and methods.  The four levels of access (public, protected, package, and private).

Type Promotion and Polymporphism:  Overriding methods in subclasses.  Type promotion (or "upcasting").  Downcasting and the "instanceof" operator.  Polymorphism.  How a subclass must obey the superclass contract.  Abstract and final classes and methods.  The binding of static methods.

Another Look at Classes and Objects:  The Object class.  Comparing objects for reference and value equality.  Parameter passing and object cloning.  Inner classes.

Arrays and Strings:  Arrays and strings as objects.  How to create instances of each.  Strings versus Stringbuffers.

Interfaces:  Interface specialization through the definition and implementation of interfaces.  The use of classes versus interfaces.  Why Java permits multiple inheritance of interface but only single inheritance of implementation.  Using interfaces for role-based design.

Basic Data Structures:  The data structure classes in the java.util package (the original, Java 1.2, and Java 1.5 collection classes and interfaces).  Using Iterators or Enumerations to iterate.  Arrays versus dynamic arrays.  Linked lists versus dynamic arrays.  Tree sets and maps versus hash sets and maps.

Packages:  The package as a mechanism for name scoping and access control.  Defining and importing packages.  A brief summary of the standard Java packages.

The I/O Packages:  The I/O classes in the java.io package.  Examples using the byte I/O (input stream and output stream) and character I/O (reader and writer) classes.

Exceptions:  Defining exceptions. Checked versus unchecked exceptions.  Throwing exceptions.  The try-catch and try-catch-finally idioms.  How to handle an exception.  Throwing exceptions in overridden methods.  Using exception information.

Threads:  The concept of threads (versus processes).  Creating Java threads.  Java mechanisms for the synchronization of access to shared objects.  Thread groups.

Back to the Java Training Course Catalog.

Copyright ©1997-2007 Objective Engineering, Inc. - ALL RIGHTS RESERVED  
Last Update: 05/17/07