Programming fundamentals

Modern Java: learn object-oriented programming

Learn modern Java: classes, inheritance, interfaces, collections, exceptions, files and concurrency.

Request this program
Duration
35 h · 5 days
Level
Intermediate
Format
On site · Remote · Blended
Max. group size
12 participants

Overview

This program teaches programming in modern Java. Participants build their first classes, master inheritance, polymorphism and interfaces, discover the language's recent features (records, sealed classes, pattern matching), use collections, lambda expressions and exceptions, then tackle input/output and concurrency. Each concept is applied on a running application.

Who this program is for

  • Developers moving to Java
  • Students and career changers
  • Teams preparing to upskill towards Spring or Jakarta EE

Prerequisites

  • Notions of object-oriented programming
  • Having already developed in a language

Learning objectives

  • Use Java as an object-oriented language
  • Structure code into classes, packages and records
  • Apply inheritance, polymorphism, interfaces and sealed classes
  • Work with collections, enumerations and lambdas
  • Handle exceptions
  • Reading and writing files
  • Understand threads and concurrency

Detailed curriculum

10 modules · 35 h · 5 days

Day 1
Java ecosystem and first steps3.5 h
50% theory · 50% practice
  • Platform, versions and distributions
  • Compile, run, package
  • Basic syntax
  • Types, operators and control structures
  • IDE and debugging
Classes and objects3.5 h🛠 1 workshop
30% theory · 70% practice
  • Classes, attributes and methods
  • Constructors and packages
  • Encapsulation
  • Records
  • Static methods and immutability
🛠 Hands-on workshops
Modeling the running application1.5 h

Model the application's first classes.

✅ Deliverable : A first object model
Day 2
Inheritance and polymorphism3.5 h
50% theory · 50% practice
  • Inheritance and overriding
  • Abstract classes
  • Interfaces and default methods
  • Polymorphism
  • Sealed classes
Design and best practices3.5 h🛠 1 workshop
30% theory · 70% practice
  • Composition or inheritance
  • SOLID principles applied
  • Dependency management
  • Unit testing with JUnit
  • Code conventions
🛠 Hands-on workshops
Guided refactoring1.5 h

Improve the structure of the running application.

✅ Deliverable : Refactored, tested code
Day 3
Collections, enumerations and lambdas3.5 h
50% theory · 50% practice
  • Lists, sets, maps
  • Enumerations
  • Inner and anonymous classes
  • Lambda expressions and functional interfaces
  • Introduction to streams
Arrays, generics and pattern matching3.5 h🛠 1 workshop
30% theory · 70% practice
  • Arrays
  • Generics
  • Comparisons and sorting
  • Pattern matching
  • Optional
🛠 Hands-on workshops
Data processing2 h

Process a dataset with collections and streams.

✅ Deliverable : A processing module
Day 4
Exceptions3.5 h
50% theory · 50% practice
  • Exception hierarchy
  • try / catch / finally
  • try-with-resources
  • Custom exceptions
  • Logging
Contributions of recent versions3.5 h🛠 1 workshop
30% theory · 70% practice
  • Files with NIO2
  • Dates and times
  • Process API
  • Text blocks and formatting
  • New features of the latest versions
🛠 Hands-on workshops
System utility1.5 h

Write a utility that reads files and launches a process.

✅ Deliverable : A documented utility
Day 5
Data input/output3.5 h
50% theory · 50% practice
  • Flat files, CSV, Excel
  • Serialization
  • Reading and writing JSON
  • Encoding handling
  • Robust processing
Threads, concurrency and wrap-up3.5 h🛠 1 workshop
30% theory · 70% practice
  • Threads and executors
  • Synchronization and pitfalls
  • Virtual threads
  • Assembling the running application
  • Review
🛠 Hands-on workshops
Delivery of the running application2 h

Finalize and present the application.

✅ Deliverable : A presented application

Tools and technologies

IntelliJ IDEAJUnitJavaMaven

Teaching methods

  • Alternating short lectures and hands-on work
  • Live demonstrations by the trainer
  • Capstone project built throughout the modules
  • Group corrections and discussion of best practices

Assessment

  • Hands-on exercises corrected in each module
  • Mini-project completed at the end of the course
  • Knowledge-check quiz

Required equipment

  • A computer with an internet connection
  • A recent JDK, Maven or Gradle and a Java IDE

Resources provided

  • Course materials and repository of corrected exercises

Career outcomes

  • A structured, tested Java application
  • A foundation for Spring, Jakarta EE or Android
  • The ecosystem's best practices

Related video courses

My video courses that go with this program, to get ready for the training or to review afterwards. Free with an account.