OOP
Repo: https://github.com/z1n0v1/M02-Java-OOP
Here you can find my solutions for SoftUni’s Java OOP course.
Java OOP is the second course from the Java Advanced module. It is 7 week long and focuses on the object oriented programming and its use as part of writing Java.
In this course you’ll learn about:
- Working with Abstraction - (Lab) - (Exercise)
- Project Architecture
- Code Refactoring
- Enumerations
- Static Keyword
- Java Packages
- Encapsulation - (Lab) - (Exercise)
- What is Encapsulation?
- Keyword this
- Access Modifiers
- Mutable and Immutable Objects
- Keyword final
- Validation
- Inheritance - (Lab) - (Exercise)
- Inheritance
- Class Hierarchies
- Accessing Base Class Members
- Reusing Classes
- Type of Class Reuse
- Interfaces and Abstraction - (Lab) - (Exercise)
- Abstraction
- Interfaces
- Abstract Classes
- Interfaces vs Abstract Classes
- Polymorphism - (Lab) - (Exercise)
- Polymorphism
- Override Methods
- Overload Methods
- SOLID - (Lab) - (Exercise)
- Single Responsibility
- Open/Closed
- Liskov Substitution
- Interface Segregation
- Dependency Inversion
- Reflection and Annotation - (Lab) - (Exercise)
- Reflection API
- Reflecting Annotations
- Exceptions and Error Handling
- What are Exceptions?
- Handling Exceptions
- Raising (Throwing) Exceptions
- Best Practices
- Creating Custom Exceptions
- Unit Testing - (Lab)
- 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
The next course part of the Software Engineering track is MySQL.