Java Programming

Learn all the basics to enable you to implement well structured Java applications
Overview

Java isn't so much a programming language as a philosophy. Once you get into the mind-set of Java principles, you will appreciate that the language supports a wealth of rich features that aid maintainability and problem-solving. This course teaches you how to implement well-structured Java applications & applets, exploiting the power of Java's object oriented features.

Course Code
JAVA3PRG
Duration
3 Days
Delivery Style
Classroom
Course Type
Public or Private
Max Delegates
12
Available as Nutshell
No

Book your team training at your premises

  • Date
  • Venue
  • Cost
  • More info

Book your place

Purpose of this course

This course has three main objectives: to understand and appreciate concepts of object-oriented programming, to use some predefined Java objects to create custom code, and to create new systems from scratch within the framework that the Java platform provides.

Who is this course for

Programmers of procedural systems looking to advance into object-oriented code development, in particular those looking at transforming class diagrams (produced from earlier phases in the software development lifecycle) into robust and maintainable object-orientated code that fully supports business requirements from system design. Staff supporting and maintaining enterprise-wide Java applications. Coders already familiar with object-oriented aspects from other languages looking to migrate their skillset over to Java.

You will learn how to
  • Write and compile working code using the object-oriented Java language
  • Use Java's classes and packages to create your own working code
  • Create your own objects and classes closely aligned with business requirements
Benefits for your organisation

The "Write once, run anywhere" core value proposition of Java means that applications only need to be developed once to run on any system that supports the Java platform.  Java is a proven technology that has been adopted by some of the biggest enterprise organisations that understand 80% of a system's lifecycle is spent making changes to realign those systems to changing business requirements; Java's design goals brings many best-practise principles missing from other languages together into a framework that ensures consistency and produces some of the most robust, reliable and scalable code ever produced, reducing costly reworking and overall maintenance costs.

Benefits for you as an individual

By understanding Java you spend more time thinking up smarter ways of programming, rather than blundering around with trial and error. Whilst some are discouraged at the sizeable time investment required of learning Java core principles and advanced features, Java advocates will argue that to do it properly is not an overnight task - and more advanced Java programmers spend their time researching other classes with a view to using already-available tried-and-tested code, rather than trying to reinvent the wheel themselves anyway. Now, isn't that a better usage of your time?

Introduction to Java

What is Java?
The Goals of Java
Java Development Tools

Java Language Basics

The Basics
Statements, Expressions and Blocks
Comments
Declaring and Using Variables
Identifiers
Reserved Words
Primitive Data Types
Type Conversions (casting)
Mathematical Operators
Assignment Operators
Wrapper Classes

Java Flow Control

Introducing Java Flow Control
Comparison Operators
Boolean Operators
The if Statement
The Conditional Operator
The switch Statement
The while Statement
The do while Statement
The for Loop
Assertions

Java Classes and Objects

Object Oriented Aspects
Classes and Instances
Defining Java Classes
Creating Instances of Objects
Writing Methods
Static (Class) Methods
The main () Method
Constructors
Destroying Objects

Java Strings and Arrays

What Are Strings and Arrays?
Java Strings
Java Arrays

Inheritance and Polymorphism

What is an Inheritance?
Extending A Class
Substitutability and Casting
Polymorphism and Dynamic Binding
Overriding Inherited Methods
Chaining Superclass Constructors
Reflection

Java Packages

What are Java Packages?
Creating Packages
Class Files and CLASSPATH

Abstract Classes and Interfaces

What is an Abstract Class?
Abstract Methods
Subclassing Abstract Classes
Interfaces
Implementing an Interface
Marker Interfaces
Sub-interfaces and Super-interfaces

The Collections API

What are Collections?
Working with Lists
Working with Sets
Working with the Collection Interface
Working with Maps
Sorting Collections
Collection Methods

Nested Classes

What are Nested Classes?
Static Nested Classes
Inner Classes (Non-Static Nested)
Local Classes
Anonymous Classes

Errors and Exceptions

Error Handling Under Java
The Throwable Hierarchy
Handling an Exception
Enforced Handling of Checked Exceptions
Defining New Exception Classes
Throwing an Exception
Exceptions and Method Overriding

Threads

What is Multi-Threading?
The Thread Lifecycle
Creating a Thread
Daemon Threads
Controlling Threads
Thread Priorities
Avoiding Corruption
Coordinating Threads
Interrupts
Timers & Timer Tasks

Java Database Connectivity

What is JDBC?
Database Drivers
Overview of a JDBC Application
Obtaining a Database Connection
Retrieving Data Using JDBC
Closing the Connection
Parameterised Statements
Modifying The Database
Transaction Management

Prerequisites

Although it is considered an introductory course, attendees are expected to be familiar with fundamental programming concepts from their current day-to-day responsibilities, possibly from other languages. Decision-makers looking for an overview of Java and the benefits it will bring to an organisation will find the course too deep and detailed - as will those looking to take their first steps into code development.

About the Lead Trainer

No training is dull with Tim. He oozes a real pleasure in teaching people stuff they don’t know. Tim loves developing new courses and sharing his knowledge at many on-site customer locations. In addition to training, Tim is an experienced consultant, advising on company computing requirements.  Did we mention that he also likes to read computing books and blogs in his spare time?