Skip to content

rahulkp-ai/oop-using-java

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

25 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

โ˜• OOP Using Java


Java JUnit Maven License Build Code Style


LinkedIn GitHub Kaggle


๐Ÿ‘ค Built by

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.


๐ŸŽฏ What is OOP Using Java?

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

๐Ÿ“ฆ Topics Covered

๐Ÿ“ฆ 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 โœ… โœ…
โš ๏ธ Exceptions 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 โœ… โœ…

๐Ÿ—บ๏ธ Learning Path

๐ŸŒฑ 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

๐Ÿš€ Quick Start

# 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:java

๐Ÿ“ Repository Structure

oop-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

๐Ÿ“Š Repository Statistics

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

๐Ÿ’ผ Interview Preparation

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

๐Ÿงช Running Tests

# Run all tests
mvn test

# Run a specific test
mvn -Dtest=StudentTest test

# Generate coverage reports
mvn jacoco:report

# Run integration tests
mvn verify

๐Ÿค Contributing

This 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-concept

See CONTRIBUTING.md for full contribution guidelines.


๐Ÿ“œ License

MIT License โ€” see LICENSE.



Built by RAHUL K P โ€” ML Engineer ยท GenAI Engineer ยท MSc CS @ 2026

LinkedIn Kaggle ORCID


โญ Star this repository if it helped your Java learning journey โ€” and connect on LinkedIn!

About

A comprehensive collection of Object-Oriented Programming (OOP) implementations and design patterns in Java. Built to demonstrate core concepts like encapsulation, inheritance, polymorphism, and abstraction through clean, well-documented code.

Topics

Resources

License

Code of conduct

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors