Skip to content

thrako/java_oop

Repository files navigation

Java OOP lessons (theory and practice):

📁 Working with Abstraction

Project Architecture
Code Refactoring
Enumerations
Keyword static
Java Packages

📁 Encapsulation

What is Encapsulation?
Keyword this
Access Modifiers
Mutable and Immutable Objects
Keyword final
Validation

📁 Inheritance

Inheritance
Class Hierarchies
Accessing Base Class Members
Reusing Classes
Type of Class Reuse

📁 Interfaces and Abstraction

Abstraction
Interfaces
Abstract Classes
Interfaces vs Abstract Classes

📁 Polymorphism

Polymorphism
Override Methods
Overload Methods

SOLID

Single Responsibility
Open/Closed
Liskov Substitution
Interface Segregation
Dependency Inversion

Reflection and Annotation

Reflection API
Reflecting Annotations

Exceptions and Error Handling

What are Exceptions?
Handling Exceptions
Raising (Throwing) Exceptions
Best Practices
Creating Custom Exceptions

Introduction to Debugging

IntelliJ IDEA Debugger
Breakpoints
Data Inspection
Variables, Watches, Frames
Finding a Defect

Unit Testing

What is Unit Testing?
Unit Testing Basics
Dependency Injection
Mocking and Mock Objects

Test Driven Development

Code and Test
Test-Driven Development
Reasons to use TDD
Myths and Misconceptions about TDD

Design Patterns

Definition of Design Patterns
Benefits and Drawbacks
Types of Design Patterns

Exam Preparation

Past Exam - 18 Apr 2022

  • Zoo App
  • Pet Store

Past Exam - 22 Aug 2022

  • Gold Digger App
  • Archaeological Excavations

My Exam

Exam - 10 Dec 2022

  • Christmas Store App
  • Toy Store