Complete OOPS & Machine Coding
von Piyush Garg

1. Setup
1.1. Course Introduction
1.2. Installation of tools
1.3. Hello World
2. Basics
2.1. Basics of Java
2.2. Variables
2.3. Basic Arithmetic Operators
2.4. Data Types
2.4.1. Integers
2.4.2. Boolean
2.4.3. Strings
2.4.4. Characters
2.4.5. Arrays
2.4.5.1. Basic Array
2.4.5.2. ArrayList
2.5. Conditional Statements
2.6. Loops
3. OOPS
3.1. Basics
3.1.1. Classes & Objects
3.1.2. Contructors
3.1.3. Access Modifiers
3.1.3.1. Public
3.1.3.2. Private
3.1.3.3. Protected
3.2. Pillars
3.2.1. Inheritance
3.2.2. Abstraction
3.2.3. Polymorphism
3.2.4. Encapsulation
3.3. This Keyword
3.4. Getters / Setters
3.5. Interface
4. Design Principles
4.1. What are design principles?
4.2. DRY
4.3. KISS
4.4. YAGNI
4.5. SOLID
4.5.1. S - Single-responsiblity Principle
4.5.2. O - Open-closed Principle
4.5.3. L - Liskov Substitution Principle
4.5.4. I - Interface Segregation Principle
4.5.5. D - Dependency Inversion Principle
4.6. Curly's Law
4.7. Boy Scout Law
5. Design Patterns
5.1. What are design patterns?
5.2. Types of Design Patterns
5.2.1. Creational
5.2.1.1. Factory
5.2.1.2. Builder
5.2.1.3. Singleton
5.2.2. Structural
5.2.2.1. Adapter
5.2.2.2. Bridge
5.2.2.3. Proxy
5.2.2.4. Decorators
5.2.3. Behavioural
5.2.3.1. Command
5.2.3.2. Iterator
5.2.3.3. Memento
5.2.3.4. Observer
5.2.3.5. Visitor