design and develop Java applications

Most Java courses teach you the features and syntax of the language. This one tells you how to design and develop realistic OO applications in Java. Writing good code in Java, is as much about understanding OO design, as the Java language syntax. This course teaches you both. You learn all the good techniques of OO programming, such as design objects to an interface and decouple their roles. As well as learning how to implement these objects in Java. You will also be shown the underlying patterns of the Java Development Kit (JDK) — a proven learning method for quickly understanding the core mechanics of Java. The course is extremely practical, developed and taught by consultants with many years' experience in OO design. When taught at your site, this modular course can be adapted to your situation and requirements.

Duration: 5 days


  • understand the patterns behind the language
  • write well-decoupled Object Oriented (OO) code, with correct use of Java interfaces
  • use techniques for good OO design to make your applications:
    • straightforward to understand
    • easy to maintain
    • able to adapt and extend to meet new requirements
  • follow a clear development method geared towards OO language development
  • create Java components that are reusable and configurable at deployment

target audience

The course is suitable for anyone. For onsite training of development teams with experience of OO design and development in another language, such as C++, the course can be slimmed down. The course is run using Java 1.1.

Introduction to Java

  • what it achieves
  • where it comes from
  • interpreter and the classpath
  • the Java Development Kit (JDK)
  • Web and distributed systems
  • objects and components

Introduction to objects

  • objects in the world and in software
  • encapsulation
  • pluggability and extensibility
  • object analysis and design

Language basics

  • declarations, variables, values
  • classes
  • statements, expressions, methods
  • packages

Programming with objects

  • objects and fields
  • references and encapsulation
  • class diagrams
  • methods and messages
  • arrays and collections
  • interfaces and inheritance
  • decoupling

Models and code

  • choosing classes and links; use-cases
  • zooming in and out
  • detail and high-level
  • basic design sequence
  • business models, scenarios
  • collaborations ; decoupling
  • associations and visibilities
  • using patterns

Pluggable design

  • designing collaborations
  • contracts
  • defining interfaces and goals
  • abstract frameworks
  • generics and delegation
  • observers
  • introduction to inner classes
  • modelling component interfaces
  • Java Beans
  • build a simple Bean


  • throwing, catching
  • modelling

Abstract Windowing Toolkit

  • The AWT package in detail
  • The AWT event models
  • Layout Managers
  • The Toolkit class
  • Creating custom components

Working with streams

  • I/O stream manipulations
  • file manipulations
  • serialization and persistence

The development process

  • short cycle development
  • low-risk paths
  • basic design sequence
  • re-engineering
  • reuse and component-based design
  • process patterns
  • deliverables and pragmatics

Please note, when taught at your site, this course is customizable. Modules can be adapted, removed, added from other courses, or even created.


Day 1

  • Introduction to Java
  • Introduction to objects

Day 1

  • Language basics
  • Programming with objects

Day 2

  • Models and code
  • Pluggable design

Day 3

  • Exceptions
  • AWT

Day 4

  • Working with streams
  • The development process


Ideally this training would be followed by one or all of the following courses: develop applications with Java Swing, advanced Java programming, J2EE application architectures, develop Web applications with JSP and Servlets, develop applications with Java and XML, and develop EJB components.

course instructor

It is presented by one of our senior consultants, each of whom has at least ten years' experience in object oriented software development, and at least three years' experience as a trainer and consultant in a diverse range of application areas.

print     printer-friendly version