Java
Home Up Non-Programmers Testing Java

Title

Java Programming

Description

This comprehensive course covers programming and development in the Java language and environment. It is intended for programmers with experience in languages other than Java, who may or may not have any previous Java experience. The course includes a detailed study of the object oriented aspects of Java, with a case study that is carried from analysis and design (presented in UML) to implementation in Java. The course incorporates treatment of the major Java tools including javac, java, jar and javadoc. There are numerous example programs and lab exercises, all of which are fully documented using javadoc. The course is entirely platform independent and targets the Java 2ä platform. (Almost all the material applies well to Java 1.1, and differences between the platform versions are highlighted.) The course consists of five modules, which are also available independently.

The first module introduces the Java software architecture, including the Java Virtual Machine, Java Runtime Environment, Core API, and the Java Developer’s Kit. Students learn to configure a Java development and runtime environment and to use the JDK command-line tools, and learn the basic software development process for Java.

The second module covers the fundamentals of the Java language, focusing on its grammar, data types, and procedural aspects such as flow control (including exception handling) and threads. By the end of the module students are building simple, practical Java classes and applications.

The third module covers Java as an object-oriented language. The module includes an optional primer on object-oriented methodology and concepts, and then looks at Java as an object-oriented implementation language, including classes, construction, visibility, inheritance, polymorphism, interfaces, abstract classes, and type identification. Lab work moves from analysis and design of a case study to implementation as a Java package of several classes including an application class that implements a command-line interface.

The fourth module introduces GUI programming in Java, starting with the Abstract Windowing Toolkit and moving through chapters on layout management, event handling, and Java Applets. The case study introduced in the previous module is expanded considerably, as a GUI interface is connected to the model, custom events and handlers are added to the model, and the resulting application-driven GUI is rewrapped and delivered via JAR file as an applet.

The fifth module introduces the Java Streams model. First the delegation-based stream model itself is covered, and successive chapters look at use of this model in raw file I/O operations and finally at Java Serialization. The case study is again expanded, finally to include dump and load of the entire application dataset through serialization.

Learning Objectives

bulletChiefly, learn to program effectively in the Java language.
bulletUnderstand the Java software architecture, and the design decisions which make Java software portable, efficient, secure and robust.
bulletLearn how to configure a simple Java development environment.
bulletKnow the grammar, data types and flow control constructs of the Java language.
bulletUnderstand Java as a purely object-oriented language.
bulletLearn how to program GUIs using Java, including using event handling to connect the GUI to an underlying data model.
bulletUnderstand the structure of streams in Java, and learn how to use streams to manage file I/O.
bulletLearn how to use Java Serialization to internalize and externalize potentially complex graphs of objects.

Course Duration

5 days

Prerequisites

Experience with some programming language other than Java, on any current operating system for which a JVM is available (including all Windows flavors and most Unix flavors). No Java programming experience or reading is required. C and C++ programmers will probably find that their natural pace through the course is a little faster.

Topics

The Java Software Architecture
The Java Virtual Machine Java Developer’s Kit Robustness – Language Features
Overview of Architecture
Java Virtual Machine
Java Runtime Environment
The Core API
Portability and Efficiency
Security
Building Java Software
bulletPackages
bulletTools
bulletJARs
bulletSecurity Model
The Java Language
Fundamentals
bulletSource file format
bulletIntro to classes
bulletFields and methods
bulletCode grammar and expressions
bulletIdentifiers
bulletOperators
bulletSystem class
Data Types
bulletPrimitive types
bulletType conversion
bulletObject references
bulletComparing and assigning references
bulletGarbage collection
bulletStrings
bulletArrays
Flow Control
bulletCall and return
bulletConditional constructs
bulletLooping constructs
bulletExceptions
Threads
bulletJava Thread Model
bulletCreating and running threads
bulletManipulating thread state
bulletCreating thread classes
bulletThread synchronization
Object-Oriented Programming in Java
Object-Oriented Analysis and Design
bulletComplex systems
bulletAbstraction
bulletClasses
bulletResponsibilities and collaborators
bulletRelationships
bulletVisibility
bulletSimple UML
bulletPolymorphism
Encapsulation in Java
bulletJava Classes
bulletMember visibility
bulletStatic members
bulletConstructors and finalizers
bulletOverloading methods
bulletCollection classes
Inheritance and Polymorphism in Java
bulletExtending Classes
bulletSuperclass reference
bulletOverriding methods and polymorphism
bulletDefining and implementing interfaces
bulletAbstract classes
bulletType identification
Inner Classes
bulletMotivation
bulletNamed inner classes
bulletOuter object reference
bulletAnonymous inner classes
Java Graphical User Interfaces
The Abstract Windowing Toolkit
bulletComponents
bulletContainers
bulletFrames
bulletControls
bulletMenus
bulletDialogs
Layout Management
bulletLayout Manager interface
bulletImplicit use of layout manager
bulletStandard layout managers
bulletCustom layout manager
Events
bulletJava Event Model
bulletEvent Types
bulletListeners
bulletSources
bulletConnections
bulletCustom Event Types
Applets
bulletApplet class
bulletApplet context
bulletApplet security
bulletDistribution using JARS
Java Streams
The Java Streams Model
bulletInputStream and OutputStream
bulletDelegation-based stream model
bulletMedia-based streams
bulletFiltering stream
Working with File Systems
bulletFile class
bulletModeling files and directories
bulletChaining streams to files
bulletInput and output
Java Serialization
bulletSerializable interface
bulletObjectInputStream and ObjectOutputStream
bulletIntroduction to reflection
bulletThe Serialization engine
bulletTransients and initialization hooks
 
 
 

 

Home Up Feedback Contents Search

Send mail to webmaster@SIGNITEK.com with questions or comments about this web site.