Target Audience
This course covers all major aspects of programming with Java using a choice of IDE (Integrated Development Environment). It is aimed at programmers who are already able to code simple Java applications and wish to broaden their knowledge with a greater understanding of the Java API.
Pre-requisites
An understanding of programming with Java or C++ is required. Students must be able to code simple Applications and Classes. Knowledge of this can be gained by attending our Java Primer course EC21.
Course Objectives
The aim of this course is to give students a fully rounded general knowledge of programming with Java. Whereas the Java Primer (EC21) course provides basic skills, this course moves onto more advanced topics including Collections, Applets, Threads, I/O, GUI's 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.
The course is taught using a choice of IDE (Integrated Development Environment). The skills needed to use this software are presented as part of the course.
On completion of this course the student will be able to:
- Take advantage of and understand Interfaces
- Use the Collections Framework (both Java 1.1 and Java 1.2 implementations)
- Build GUI applications and Applets, using both the AWT and the Swing API's
- 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
- Create socket based applications using the Networking classes
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
- OBJECTS, METHODS AND CLASSES
- 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
- COLLECTIONS
- Collection Interfaces And Implementations
- Summary Of Collection Implementations
- Lists: ArrayList, Vector, LinkedList
- Maps: HashMap, Hashtable, TreeMap, LinkedHashMap
- Sets: HashSet, TreeSet, LinkedHashSet
- Iterator And Enumeration
- Other Collections: Stacks, Properties
- Sorting Objects
- The Comparable Interface, Comparators
- More ways to Sort Objects:
- java.util.Collections, java.util.Arrays
- Collections Method Reference
- APPLETS & GRAPHICS
- Introduction to Applets
- Applet Creation, Applet Activities, Hierarchy of the Applet Class
- Including an Applet on a Web Page - the APPLET tag
- Passing Parameters to Applets
- Using Applets
- Using the Graphics Class to draw and fill shapes, Determining the Window Size
- Text and Fonts, Colour, Displaying Images
- Java Archives - JAR Files
- 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
- GUI COMPONENTS
- The AWT API
- Frames, Layout Managers, AWT GUI Objects
- Text Areas, Scrolling Lists, Dialog Boxes, Menus
- SWING COMPONENTS
- Java Foundation Classes
- The Swing API
- Swing GUI Components, The Jframe Component
- Layout Managers, Look And Feel
- Swing Components
- JButton, JLabel, Checkboxes And Radiobuttons
- Lists And Combo Boxes, Menu Bars, JScrollpane, Dialogs
- ADVANCED SWING
- The advanced Swing GUI components
- JTree, Tables
- EVENTS AND EVENT HANDLING
- Handling Mouse and Keyboard Events
- Java 1.02 technique
- Since Java 1.1 - using Interfaces
- Handling GUI Action Events
- Java 1.02 technique
- Since Java 1.1 - using interfaces
- Handling Window Events using Interfaces
- Registering and Handling Events
- Listeners, Adaptors, Inner Classes, Anonymous Inner Classes
- 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
- NETWORKING
- Java Networking API
- Ports, Sockets, Server Sockets
- Clients and Servers
- Java Clients, Java Servers, Web Servers
- INTRODUCTION TO SERVER-SIDE PROGRAMMING
- Overview of Server side programming
- Servlets, Java Server Pages, Web Servers, Java Beans
- Model, View, Controller architecture
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 several complete applications, gaining in complexity throughout.
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.
|