0345 4506120

Java Programming 1

The Java Programming 1 course is closely aligned with the Oracle Java SE 8 Programmer I exam.

The course comprises sessions dealing with Java apps, variables and operators, decision and loop constructs, arrays, methods, objects, classes, static members,  enums, object-oriented principles, exception handling, packages and imports, selected APIs and lambda expressions.

Exercises and examples are used throughout the course to give practical hands-on experience with the techniques covered.

The delegate will learn and acquire skills as follows:

  • Writing, compiling, and executing simple Java applications
  • Declaring and initialising variables
  • Constructing expressions using relational, arithmetic and logical operators
  • Constructing decision and loop statements
  • Constructing and manipulating arrays of data
  • Declaring and invoking methods using both parameters and return values
  • Constructing classes and objects
  • Creating static members
  • Constructing enums
  • Encapsulating classes
  • Implementing a hierarchical application design using inheritance
  • Exploiting polymorphism
  • Throwing and catching exceptions
  • Organising classes into packages
  • Producing code that uses wrappers, Strings, dates and ArrayLists
  • Constructing a simple lambda expression

Who will the Course Benefit?

The Java Programming 1 course is aimed at anyone who wants to learn Java as a first language and developers/engineers who want to migrate to  Java from another language, particularly those with little or no object-oriented knowledge.

If you are an experienced object-oriented developer with a good grasp of programming constructs such as variables, decisions, loops, arrays, classes and  objects (albeit in another language), you should consider taking the Java Programming 2 course instead.


Learning Objectives

By the end of the course delegates should be able to:

  • Build an executable Java class
  • Compile and execute a Java application
  • List and describe the eight primitive data types
  • Differentiate between primitive and reference types
  • Declare and initialise variables including constants
  • Name variables correctly
  • Determine a variable's scope and default value
  • Construct expressions using arithmetic, relational and logical operators
  • Construct decision statements using the if else and switch constructs
  • Assign to a variable the result of a conditional statement using the ternary operator
  • Construct iterative statements using the for, while and do constructs
  • Identify scenarios where the use of the break or continue statement is valid
  • Declare and initialise an array in two ways
  • Set and get array elements
  • Traverse an array
  • Declare methods with/without parameters and a return value
  • Invoke/call a method
  • Overload a method
  • Use the output of one method as input to another
  • Declare a reference variable and assign it a new object
  • Access an object's instance fields
  • Invoke an object's instance methods
  • Differentiate the passing of primitive and reference variables to methods
  • Describe the object lifecycle
  • Construct a class with instance fields, methods and constructors
  • Describe the concept of a default constructor
  • Implement constructor overloading
  • Describe the syntax and purpose of initialiser blocks
  • Define the term static
  • Declare static fields and methods
  • Invoke static members
  • Describe the static context
  • Construct an enum
  • List and describe the four access modifiers
  • Encapsulate a class
  • Have one class inherit state and behaviour from another
  • Override a super class method
  • Exploit polymorphism to build scalable applications
  • Describe the purpose and implication of abstract classes and methods
  • Make a method/class abstract
  • Differentiate between an abstract class and an interface
  • Have one class implement an interface
  • Exploit interface polymorphism
  • Define the term exception
  • Differentiate between checked and unchecked exceptions
  • Throw and catch exceptions
  • Construct a custom exception
  • List exception handling guidelines
  • Organise classes into packages
  • Make classes outside the java.lang package available to your application
  • Produce code that uses wrappers, Strings, dates and ArrayLists
  • Define the term functional programming
  • Construct a simple lambda expression
  • Describe a functional interface



Delegates attending this course should be able to define general programming concepts including compilation and execution, variables, arrays, sequence,  selection and iteration, navigate the filesystem (on the command line ideally), edit and save text files and browse the web. This knowledge can be obtained by  attendance on the pre-requisite Concepts of Programming course.

Pre-Requisite Courses

  • Concepts of Programming

Course Content

Day 1

Course Introduction

  • Administration and Course Materials
  • Course Structure and Agenda
  • Delegate and Trainer Introductions


  • Application Structure
  • Compilation
  • Execution

Session 2: VARIABLES

  • Data Types
  • Declaration
  • Assignment
  • Naming Conventions
  • Literals
  • Constants
  • Scope
  • Default Values

Session 3: OPERATORS

  • Unary vs. Binary Operators
  • Order of Precedence
  • Arithmetic Operators
  • Unary Operators
  • Assignment Operators
  • Relational Operators
  • Logical Operators

Session 4: DECISIONS

  • If Else
  • Switch
  • Ternary Operator

Session 5: LOOPS

  • For
  • While
  • Do
  • Break
  • Continue

Day 2

Session 6: ARRAYS

  • Declaration
  • Assignment
  • Setting and Getting
  • Traversing

Session 7: METHODS

  • Declaration
  • Invocation/Call
  • Parameters
  • Return Type
  • Overloading
  • Output as Input

Session 8: OBJECTS

  • Creation and Assignment
  • Instance Fields
  • Instance Methods
  • References as Parameters
  • Lifecycle

Session 9: CLASSES

  • Structure
  • Instance Fields
  • Instance Methods
  • Constructors
  • Initialiser Blocks
  • Naming Conventions

Day 3


  • Static Fields
  • Static Methods
  • Static Context

Session 11: ENUMS

  • Structure
  • Usage


  • Access Modifiers
  • Encapsulating a Class
  • Objects of an Encapsulated Class

Day 4


  • Inheriting from a Super Class
  • Sub Class Differentiation
  • Sub Class Constructors
  • Polymorphism
  • Abstract Classes and Methods
  • Interfaces
  • The Object Class


  • Checked and Unchecked Exceptions
  • Throwing Exceptions
  • Catching Exceptions
  • Try with Resources
  • Custom Exceptions
  • Guidelines

Day 5


  • Packages
  • Imports
  • Static Imports


  • Wrapper Classes
  • String
  • StringBuilder
  • java.time Classes
  • ArrayList


  • Outer Class
  • Anonymous Inner Class
  • Lambda Expression
  • Functional Interfaces

Exams & Certification

This course helps to prepare for the following exam:

Oracle Certified Associate (OCA) Java SE8 Programmer I exam (1Z0-808).

Attending this course will help delegates gain many of the skills and product knowledge requirements as outlined in the exam objectives.  Studying this course and its associated reference materials can form part of the preparation to achieve certification. Experience, practice,  self-study and aptitude are also key requirements for exam success.

Before taking any exam, ensure you have the recommended experience. The Oracle website lists all exam requirements and these are updated regularly.

Exams are not included as part of the course.

Privacy Notice

In order to provide you with the service requested we will need to retain and use your contact information in accordance with our Privacy Notice. If you choose to provide us with this information you explicitly consent to us using the information as necessary to provide the requested service to you. If you do not agree please do not proceed to request the service from us.

Marketing Permissions

Would you like to receive our newsletter and other information on products and services which we think will be of interest to you by email. We will always treat your information with care and in accordance with our Privacy Notice. You are free to withdraw this permission at any time.


Online Courses

You may prefer an online course if you are looking for a flexible and cost-effective solution. Online courses allow you to study at your own pace, at a time that suits you.

We have the following eLearning options available:

Virtual Classroom

Virtual classrooms provide all the benefits of attending a classroom course without the need to arrange travel and accomodation. Please note that virtual courses are attended in real-time, commencing on a specified date.

Virtual Course Dates

Our Customers Include