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