Target Audience
This course covers all major aspects of programming with Java. It is essentially a condensed version of courses EC21 (Java Primer) and EC22 (Java Programming) but excludes topics on GUI, Swing and Applet development.
Pre-requisites
The student should be familiar with the Windows host environment. Knowledge of any programming language is advantageous but not essential.
Course Objectives
The aim of this course is to give students a fully rounded general knowledge of programming with Java providing not just basic skills but moving onto more advanced topics including Collections, Threads, I/O and Networking.
During the course the student will write many applications, classes and applets ensuring that the statements taught are fully understood and practical experience is gained.
On completion of this course the student will be able to:
-
use the major concepts of a modern, block-structured, high-level language, such as control flow, method calls and modular programming
-
structure programs using classes and other essential object-oriented features
-
take advantage of and understand Interfaces
-
use the Collections Framework (both Java 1.1 and Java 1.2 implementations)
-
create and handle Exceptions
-
use the Java Input/Output classes
-
understand and use Serialization to achieve persistence
-
understand multi-threading and synchronization and use the various techniques available to create separate threads
Course Environment
Development will be performed using:
-
the Java Development Kit (JDK) plus a text editor
-
JBuilder
-
NetBeans
-
Websphere Studio Application Developer
-
Rational Application Developer
-
Eclipse
Course Details
- INTRODUCTION TO JAVA
- What is Java?
- The Java Programming Language
- The Java Platform, Java installation - Path requirements
- What Can Java Do?
- Overview of the many subjects covered by Java
- Advantages of using Java
- Creating a java class
- Running Simple Applications
- A simple first example - The "Hello World" Application
- OBJECT-ORIENTED CONCEPTS
- An introduction to Objects
- What is an Object?, Encapsulation
- Communicating between objects
- What are Messages?, the benefits of Messages
- Classes
- What are Classes?, Objects vs. Classes, instantiation, the benefits of Classes
- Inheritance
- What is Inheritance?, the benefits of Inheritance
- THE JAVA LANGUAGE
- Variables
- Usage Types, Data Types, Literal Values, Naming Standards, Scope, Initialisation, Constants, Escape Characters
- Arrays & Multi-Dimentional Arrays
- Strings
- Strings are objects!, Concatenation, Testing for String equality, Manipulation
- Operators
- Arithmetic, Unary, Relational, Conditional, Bitwise, Assignment, Expressions
- Primitive Casting & Data Type Conversion
- Control Flow Statements
- if-else, switch, For, While, Do-while, break and continue, Labeled Loops
- The return Statement
- Passing Arguments to JAVA Programs
- OBJECTS, METHODS AND CLASSES
- Introduction to Classes and Objects
- Methods, Applications & Object Code
- Creating & Manipulating Objects, Calling Methods, Passing Arguments and Method Overloading, Returning Values from Methods
- Constructors, Static Code
- Inheritance - Extending a Class
- What does a Subclass Inherit?
- Abstract Classes and Methods
- Interfaces
- Defining an Interface, Implementing an Interface
- Inner Classes
- Using an Inner Class to Implement an Adapter, Anonymous Inner Classes
- The Garbage Collector - Cleaning up Unused Objects
- Finalization
- PACKAGES
- Packages, Using Package Members, Importing
- ACCESSIBILITY MODIFIERS
- Public or Private?!
- Declaration Parameters
- Class, Variable , Method
- CASTING
- Literal Values, Implicit & Explicit Casting, Casting With Operators
- Casting Objects, Narrowing & Widening
- CONVERSION, FORMATTING AND PRECISION
- Data Type Conversion, Wrapper Classes
- Decimal Precision
- Numeric Formatting, Date Formatting
- THE INTEGRATED DEVELOPMENT ENVIRONMENT
- The Workbench
- Perspectives, Views, Toolbars, Editors
- Importing and exporting, Searching
- Rearranging Views, Fast Views
- Working With Java
- Working with buildpaths and classpaths
- Fixing Problems, Creating new Classes and Interfaces
- The Java Editor
- Editing code and elements, Content/Code Assist, Code Formatter
- Managing Imports, Local History, Refactoring
- Other Views
- The Type Hierarchy, Using the Outline View
- Running and Debugging apps
- THE RAD 6.0 DEVELOPMENT ENVIRONMENT (if applicable)
- The Workbench
- Perspectives, Views, Toolbars, Editors
- Importing and exporting, Searching
- Rearranging Views, Fast Views
- Working With Java
- Working with buildpaths and classpaths
- Fixing Problems, Creating new Classes and Interfaces
- The Java Editor
- Editing code and elements, Content/Code Assist, Code Formatter
- Managing Imports, Local History, Refactoring
- Other Views
- The Type Hierarchy, Using the Outline View
- Running and Debugging apps
- COLLECTIONS
- Java 1.1 Collections
- Vectors, Stacks, Enumeration, Dictionaries and Hashtables
- Properties
- Java 1.2 Collections Framework
- The Need for a New Framework, Collection Interfaces and Implementations
- Iterators
- Sets - HashSet, TreeSet
- Lists - ArrayList, LinkedList
- Maps - HashMap, TreeMap
- THREADS & SYNCHRONIZATION
- What is a Thread?
- Creating Threads
- Method 1 - Extending the Thread Class
- Method 2 - Implementing the Runnable Interface
- Controlling Threads
- Thread Priority, Terminating Threads, Daemon Threads, Thread Synchronization
- Applet Animation and Threads
- Animation Flickering, Double Buffering to avoid flickering
- Using an Inner Class to Handle Multiple Threads
- ERROR HANDLING
- Java Exceptions
- Runtime and Checked Exceptions, Try / Catch Processing, The Finally Block
- Passing Exceptions up the Stack
- The throws statement
- Creating new Exceptions
- The Throw Statement, Error and Exception Classes, User Defined Exceptions
- JAVA I/O
- The Java I/O API
- The File class, Input and Output Streams, Readers and Writers
- Reading from System Input, Reading from Files
- Standard Output Stream - System.out
- Types of I/O classes
- Buffering input/output, ByteArrays, CharArrays, DataStreams
- Serialization - Persistence of Objects
Course Format
Practical sessions make up a large part of the course, allowing delegates to demonstrate and reinforce the lectures given. During these sessions the delegate will build a simple but complete application.
Examples are used extensively, ranging from simple code 'snippets' to full applications with complete ‘real world’ functionality. These are supplied at the start of the course and it is encouraged that the delegates execute and ‘experiment’ with these under the instructor’s guidance as they are introduced.
These examples are available to take away, along with the delegate’s own work.
The comprehensive Student Guide supplied is fully indexed serving as a useful reference tool long after the course has finished. Delegates will also be able to access a free help-line with technical questions relating to topics covered on the course.
|