Object Oriented Programming
by Farah Shaikh
1. Classes
1.1. methods
1.2. properties
2. Encapsulation
2.1. Private
2.2. Public
2.3. Protected
3. Design Patterns
4. Solid Principles
4.1. Single responsibility principle
4.2. Open/closed principle
4.3. Liskov substitution principle
4.4. Interface segregation principle
4.5. Dependency inversion principle
5. Test Driven Development
6. Tools
6.1. interfaces
6.2. abstract classes
6.3. static properties and methods
7. Documentation
7.1. Comment Code
8. Polymorphism
9. Composition, inheritance, and delegation
10. Open Recursion