Basic Java Programming for Developers New to OO (C, COBOL, etc.)

Transition seamlessly from procedural programming to object-oriented mastery with our Basic Java Programming course, designed for experienced developers seeking to harness Java's capabilities in building scalable, maintainable software applications with modern best practices.

Course Thumbnail

Essential Skills Gained

Checkmark

Transition to object-oriented design from procedural programming.

Checkmark

Build practical skills in writing Java applications from scratch.

Checkmark

Apply inheritance and polymorphism for dynamic solutions.

Checkmark

Utilize modern Java features like records and lambda expressions.

Format

  • Instructor-led
  • 5 days with lectures and hands-on labs.

Audience

  • Software engineers
  • Application developers
  • Technical professionals
  • Procedural programmers transitioning to Java

Description

Object-oriented programming (OOP) is the foundation of modern software development, making code more structured, reusable, and maintainable. If you are an experienced developer in a procedural language like C, SQL, or procedural Python, Basic Java Programming for Developers New to OO will help you transition to the object-oriented mindset. This expert-led, hands-on course focuses on teaching you how Java organizes code using classes, objects, and methods, allowing you to build scalable applications with real-world best practices. You will learn not just how to write Java code but also how to structure programs effectively, improving readability, maintainability, and long-term flexibility in your development projects. Over five days, you will gain practical experience in designing and building Java applications while learning essential object-oriented concepts. You will start by writing simple Java programs and understanding how the Java Virtual Machine (JVM) executes your code. From there, you will explore how to create and manage objects, structure data using Java’s collection framework, and apply key programming principles like inheritance and polymorphism to make your applications more dynamic and adaptable. Through guided exercises, you will see firsthand how Java’s modern features—such as records, pattern matching, and lambda expressions—streamline development and reduce boilerplate code. With 50% hands-on coding, this course ensures you are not just learning theory but actively applying it through structured labs and real-world examples. You will practice debugging, exception handling, and modular application design, gaining confidence in troubleshooting and optimizing your programs. By the end of the course, you will have the skills to write clean, efficient, and scalable Java applications, preparing you to work on object-oriented projects and collaborate more effectively in modern software development environments.

Calendar icon

Upcoming Course Dates

No upcoming dates. Please check back later.

Course Outline

Download PDF

The Java Platform

  1. Introduce the Java Platform

  2. Explore the Java Standard Edition

  3. Discuss the lifecycle of a Java Program

  4. Explain the responsibilities of the JVM

  5. Executing Java programs

  6. Garbage Collection

Using the JDK

  1. Explain the JDK’s file structure

  2. Use the command line compiler to compile a Java class

  3. Use the command line Java interpreter to run a Java application class

  4. Documentation and Code Reuse

Using the IntelliJ IDE

  1. Introduce the IntelliJ IDE

  2. The basics of the IntelliJ interface

  3. IntelliJ Projects and Modules

  4. Creating and running Java applications

Writing a Simple Class

  1. Write a Java class that does not explicitly extend another class

  2. Define instance variables for a Java class

  3. Create object instances

  4. Primitives vs Object References

  5. Implement a main method to create an instance of the defined class

  6. Java keywords and reserved words

Adding Methods to the Class

  1. Write a class with accessor methods to read and write instance variables

  2. Write a constructor to initialize an instance with data

  3. Write a constructor that calls other constructors for code reuse

  4. Use the this keyword to distinguish local variables from instance variables

  5. Introducing annotations

  6. Deprecating classes and methods

Object-Oriented Programming

  1. Real-World Objects

  2. Classes and Objects

  3. Object Behavior

  4. Methods and Messages

Language Statements

  1. Arithmetic operators

  2. Operators to increment and decrement numbers

  3. Comparison operators

  4. Logical operators

  5. Return type of comparison and logical operators

  6. Use for loops

  7. Switch Expressions

  8. Switch Expressions and yield

Using Strings and Text Blocks

  1. Create an instance of the String class

  2. Test if two strings are equal

  3. Perform a case-insensitive equality test

  4. Contrast String, StringBuffer, and StringBuilder

  5. Compact Strings

  6. Text Blocks

  7. Unicode support

Fields and Variables

  1. Discuss Block Scoping Rules

  2. Distinguish between instance variables and method variables within a method

  3. Explain the difference between the terms field and variable

  4. List the default values for instance variables

  5. Final and Static fields and methods

Specializing in a Subclass

  1. Constructing a class that extends another class

  2. Implementing equals and toString

  3. Writing constructors that pass initialization data to parent constructor

  4. Using instanceof to verify type of an object reference

  5. Overriding subclass methods

  6. Pattern matching for instanceof

  7. Safely casting references to a more refined type

Using Arrays

  1. Declaring an array reference

  2. Allocating an array

  3. Initializing the entries in an array

  4. Writing methods with a variable number of arguments

Records

  1. Data objects in Java

  2. Introduce records as carrier of immutable data

  3. Defining records

  4. The Canonical constructor

  5. Compact constructors

Java Packages and Visibility

  1. Use the package keyword to define a class within a specific package

  2. Discuss levels of accessibility/visibility

  3. Using the import keyword to declare references to classes in a specific package

  4. Using the standard type naming conventions

  5. Introduce the Java Modular System

  6. Visibility in the Java Modular System

Utility Classes

  1. Introduce the wrapper classes

  2. Explain Autoboxing and Unboxing

  3. Converting String representations of primitive numbers into their primitive types

  4. Defining Enumerations

  5. Using static imports

  6. Introduce the Date/Time API

  7. LocalDate / LocalDateTime etc.

  8. Apply text formatting

  9. Using System.out.printf

Inheritance and Polymorphism

  1. Write a subclass with a method that overrides a method in the superclass

  2. Group objects by their common supertype

  3. Utilize polymorphism

  4. Cast a supertype reference to a valid subtype reference

  5. Use the final keyword on methods and classes to prevent overriding

Interfaces and Abstract Classes

  1. Define supertype contracts using abstract classes

  2. Implement concrete classes based on abstract classes

  3. Define supertype contracts using interfaces

  4. Implement concrete classes based on interfaces

  5. Explain advantage of interfaces over abstract classes

  6. Explain advantage of abstract classes over interfaces

Sealed Classes

  1. Introduce sealed classes

  2. The sealed and permits modifier

  3. Sealed interfaces

  4. Sealed classes and pattern matching

Pattern Matching

  1. Pattern Matching in switch statements

  2. Pattern Matching and sealed classes

  3. Record Patterns

Introduction to Exception Handling

  1. Introduce the Exception architecture

  2. Defining a try/catch blocks

  3. Checked vs Unchecked exceptions

Exceptions

  1. Defining your own application exceptions

  2. Automatic closure of resources

  3. Suppressed exceptions

  4. Handling multiple exceptions in one catch

  5. Enhanced try-with-resources

  6. Helpful NullPointerException(s)

Building Java Applications

  1. Explain the steps involved in building applications

  2. Define the build process

  3. Introduce build scripts

  4. Explain the standard folder layout

  5. Resolving project dependencies

Introduction to Generics

  1. Generics and Subtyping

  2. Bounded Wildcards

  3. Generic Methods

Introducing Lambda Expressions and Functional Interfaces

  1. Understanding the concept of functional programming

  2. Understanding functional interfaces

  3. Lambda's and type inference

Collections

  1. Provide an overview of the Collection API

  2. Review the different collection implementations (Set, List and Queue)

  3. Explore how generics are used with collections

  4. Examine iterators for working with collections

  5. Sequenced Collections

Using Collections

  1. Collection Sorting

  2. Comparators

  3. Using the Right Collection

  4. Lambda expressions in Collections

  5. Sequenced Sets

Streams

  1. Understanding the problem with collections in Java

  2. Thinking of program solutions in a declarative way

  3. Use the Stream API to process collections of data

  4. Understand the difference between intermediate and terminal stream operations

  5. Filtering elements from a Stream

  6. Finding element(s) within a Stream

  7. Collecting the elements from a Stream into a List

Collectors

  1. Using different ways to collect the items from a Stream

  2. Grouping elements within a stream

  3. Gathering statistics about numeric property of elements in a stream

Bonus Topics: Time Permitting

  1. Introduction to Annotations

    1. Discuss how annotations work in Java

    2. Understand what is required to work with Java’s annotations

    3. Use annotations

    4. Other technologies that are using annotations

  2. Java Data Access JDBC API

    1. Connecting to a database using JDBC

    2. Executing a statement against a database that returns a ResultSet

    3. Setting up and working with PreparedStatements

    4. Extracting multiple rows of data from a ResultSet

    5. Inserting, updating and deleting rows in a table

Your Team has Unique Training Needs.

Your team deserves training as unique as they are.

Let us tailor the course to your needs at no extra cost.