Course
digicode: JAVA2A
Object-Oriented Programming in Java
Course facts
Download as PDF- Designing professional, maintainable class hierarchies based on OOP principles
- Correctly implementing object methods (toString, equals, hashCode)
- Targeted use of interfaces, records, and sealed classes
- Writing generic classes and methods with bounds and wildcards
- Applying the five SOLID principles and recognizing code smells
- Practical implementation of design patterns (Factory, Strategy, Observer)
- Using AI tools for code review, refactoring, and pattern recognition
Day 1: In-Depth Class Design
Learn how professional classes are structured—with high cohesion, overloaded constructors, copy constructors, and immutable objects. You’ll master object methods (toString, equals, hashCode) and work with enums, the singleton pattern, as well as Comparable and Comparator.
Day 2: Inheritance, Polymorphism, and Interfaces
Delve deeper into inheritance with constructor chains, dynamic binding, and the Liskov Principle. You’ll also learn when composition is better than inheritance, work with interfaces (default methods, static, private), and explore Java features such as records, sealed classes, and pattern matching.
Day 3: Generics, SOLID, and Design Patterns
You’ll master generics using bounds, wildcards, and the PECS principle. We’ll explore all five SOLID principles and apply the Factory, Strategy, and Observer design patterns in practical scenarios. Clean Code principles by Robert C. Martin serve as the guiding thread for identifying code smells and refactoring.
Throughout the course, you’ll use AI tools for AI-assisted code review—to analyze class hierarchies, identify SOLID violations, and generate refactoring suggestions.
The course combines theory and practice in a proven format:
- Short theoretical segments, live coding, and demos led by the instructor
- Numerous hands-on exercises with increasing levels of difficulty
- AI-powered code review exercises: Participants have their code analyzed by AI and critically evaluate the suggestions
- Chapter exercises designed as practical mini-projects
- Interactive training with time for questions and discussions
Java developers with basic knowledge who want to learn professional software design. The course is particularly suitable for:
- Developers who want to transition from procedural to object-oriented thinking
- IT professionals who want to build maintainable and extensible Java architectures or deepen their understanding of OOP design
Prerequisites include a basic understanding of Java equivalent to the «Java Foundation» course or comparable knowledge: variables, data types, control structures (if/else, loops), methods, simple classes, and objects.
All participants must have access to an AI text bot (e.g., ChatGPT, Claude, Copilot, or Perplexity).
Please create a free AI account (e.g., ChatGPT, Claude, Copilot, or Perplexity) before the course begins.