public class Author {
public static final String NAME = "RAHUL K P";
public static final String[] ROLES = {
"ML Engineer",
"GenAI Engineer",
"MSc Computer Science Student @ 2026"
};
public static final String LOCATION = "Kerala, India ๐ฎ๐ณ";
public static final String CERTIFICATION =
"IBM Generative AI Engineering Professional";
public static final String MISSION =
"Building strong software engineering foundations for AI systems";
public static final String CONTACT =
"rahulkpkurup@gmail.com";
}This repository is part of my journey toward becoming an ML Engineer, GenAI Engineer, and highly capable Software Engineer by mastering the core principles of Object-Oriented Programming, software architecture, and clean code engineering.
A production-quality Object-Oriented Programming repository built using Java, combining academic rigor with software engineering best practices.
Every module includes:
- โ Clean and modular Java code
- โ Industry-standard project structure
- โ OOP concepts explained with practical examples
- โ JUnit 5 test suites
- โ UML diagrams and architecture notes
- โ Maven build automation
- โ Interview-focused implementations
- โ Design Patterns and SOLID principles
- โ Documentation and learning resources
| ๐ฆ Category | โ Concepts | ๐งช Tests | ๐ Notes |
|---|---|---|---|
| ๐ Java Basics | JVM, JDK, Variables, Methods | โ | โ |
| ๐งฑ Classes & Objects | Object Creation, State, Behavior | โ | โ |
| ๐๏ธ Constructors | Default, Parameterized, Copy | โ | โ |
| ๐ Encapsulation | Access Modifiers, Data Hiding | โ | โ |
| ๐งฌ Inheritance | Single, Multilevel, Hierarchical | โ | โ |
| ๐ญ Polymorphism | Overloading, Overriding | โ | โ |
| ๐จ Abstraction | Abstract Classes | โ | โ |
| ๐ Interfaces | Contracts, Implementations | โ | โ |
| ๐ค Relationships | Association, Aggregation, Composition | โ | โ |
| ๐ Collections | List, Set, Queue, Map | โ | โ |
| Checked, Unchecked, Custom | โ | โ | |
| ๐งฎ Generics | Generic Classes & Methods | โ | โ |
| ๐งต Multithreading | Thread, Runnable, Synchronization | โ | โ |
| ๐๏ธ SOLID Principles | SRP, OCP, LSP, ISP, DIP | โ | โ |
| ๐๏ธ Design Patterns | Factory, Singleton, Strategy | โ | โ |
| ๐งช Testing | JUnit 5 & Test Design | โ | โ |
๐ฑ BEGINNER
โโโ Java Basics
โโโ Classes & Objects
โโโ Constructors
โโโ Encapsulation
โโโ Packages & Access Modifiers
๐ฟ INTERMEDIATE
โโโ Inheritance
โโโ Polymorphism
โโโ Abstraction
โโโ Interfaces
โโโ Relationships Between Objects
๐ณ ADVANCED
โโโ Collections Framework
โโโ Exception Handling
โโโ Generics
โโโ File Handling
โโโ Multithreading
๐๏ธ SOFTWARE DESIGN
โโโ SOLID Principles
โโโ Design Patterns
โโโ UML Modeling
โโโ Low Level Design
โโโ Clean Architecture
๐ INTERVIEW READY
โโโ Java OOP Interview Questions
โโโ System Design Basics
โโโ Real-world Case Studies
โโโ Coding Challenges
# 1. Clone the repository
git clone https://github.com/rahulkp-ai/oop-using-java.git
cd oop-using-java
# 2. Auto setup (recommended)
chmod +x setup.sh && ./setup.sh
# 3. Build project
mvn clean install
# 4. Run all tests
mvn test
# 5. Generate reports
mvn site
# 6. Run examples
mvn exec:javaoop-using-java/
โโโ src/
โ โโโ basics/ # Java fundamentals
โ โโโ classes_objects/ # Classes and Objects
โ โโโ constructors/ # Constructor examples
โ โโโ encapsulation/ # Data hiding
โ โโโ inheritance/ # Inheritance hierarchy
โ โโโ polymorphism/ # Runtime & compile-time polymorphism
โ โโโ abstraction/ # Abstract classes
โ โโโ interfaces/ # Interface contracts
โ โโโ relationships/ # Composition, Aggregation, Association
โ โโโ collections/ # Collections Framework
โ โโโ exception_handling/ # Exception management
โ โโโ generics/ # Generic programming
โ โโโ multithreading/ # Concurrent programming
โ โโโ solid_principles/ # SOLID implementations
โ โโโ design_patterns/ # Factory, Strategy, Singleton etc.
โ โโโ mini_projects/ # Real-world projects
โ โโโ cli/ # Optional CLI applications
โ
โโโ notebooks/ # Interactive learning notebooks
โ โโโ 01_java_basics.ipynb
โ โโโ 02_classes_objects.ipynb
โ โโโ 03_encapsulation.ipynb
โ โโโ 04_inheritance.ipynb
โ โโโ 05_polymorphism.ipynb
โ โโโ 06_abstraction.ipynb
โ โโโ 07_interfaces.ipynb
โ โโโ 08_collections.ipynb
โ โโโ 09_multithreading.ipynb
โ โโโ 10_design_patterns.ipynb
โ
โโโ tests/
โ โโโ unit/ # JUnit tests
โ โโโ integration/ # Integration tests
โ โโโ performance/ # Optional benchmarks
โ
โโโ problems/ # Practice problems
โ โโโ beginner/
โ โโโ intermediate/
โ โโโ advanced/
โ
โโโ solutions/ # Complete solutions
โโโ diagrams/ # UML diagrams
โโโ docs/ # Documentation
โโโ interview_prep/ # Interview resources
โโโ datasets/ # Practice datasets
โโโ assets/ # Images & banners
โโโ .github/
โ โโโ workflows/ # CI/CD workflows
โ
โโโ pom.xml
โโโ Makefile
โโโ setup.sh
โโโ README.md
| Category | Count |
|---|---|
| โ Java Source Files | 60+ |
| ๐ Jupyter Notebooks | 27 |
| ๐งช JUnit Test Files | 15+ |
| ๐ Problem Sets | 15 |
| โ Solution Modules | 9 |
| ๐ Documentation Files | 16+ |
| ๐ UML Diagrams | 10+ |
| ๐๏ธ Datasets | 4 |
| ๐ค CI/CD Workflows | 3 |
| Resource | Description |
|---|---|
docs/oop_cheatsheet.md |
Quick OOP revision guide |
docs/solid_principles.md |
SOLID principles with examples |
docs/design_patterns.md |
Most asked design patterns |
interview_prep/java_oop_questions.md |
100+ Java interview questions |
interview_prep/system_design_basics.md |
Beginner-friendly system design |
interview_prep/backend_roadmap.md |
Java backend roadmap |
This repository helps prepare for:
- ๐ข Software Engineering Interviews
- โ Java Backend Developer Roles
- ๐ MSc / MCA Viva Examinations
- ๐ Coding Assessments
- ๐๏ธ Low-Level Design Discussions
# Run all tests
mvn test
# Run a specific test
mvn -Dtest=StudentTest test
# Generate coverage reports
mvn jacoco:report
# Run integration tests
mvn verifyThis is an open learning project. Contributions are welcome!
# Create feature branch
git checkout -b feature/new-concept
# Write code and tests
mvn test
# Commit changes
git commit -m "Add: Strategy Pattern Example"
# Push branch
git push origin feature/new-conceptSee CONTRIBUTING.md for full contribution guidelines.
MIT License โ see LICENSE.