Project Architecture
Code Refactoring
Enumerations
Keywordstatic
Java Packages
What is Encapsulation?
Keywordthis
Access Modifiers
Mutable and Immutable Objects
Keywordfinal
Validation
Inheritance
Class Hierarchies
Accessing Base Class Members
Reusing Classes
Type of Class Reuse
Abstraction
Interfaces
Abstract Classes
Interfaces vs Abstract Classes
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
- Zoo App
- Pet Store
- Gold Digger App
- Archaeological Excavations
My Exam
- Christmas Store App
- Toy Store