Skip to content

ikwukao/object_oriented_programming

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

34 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🧱 Object-Oriented Programming in Python

A collection of Python projects and exercises demonstrating the core principles of Object-Oriented Programming (OOP). This repository contains solutions to practical coding challenges covering classes, encapsulation, inheritance, polymorphism, abstraction, and clean code principles.

The projects were completed as part of my journey toward becoming a Backend Engineer, with an emphasis on writing modular, maintainable, and reusable Python code.


📚 Topics Covered

  • Classes and Objects
  • Constructors (__init__)
  • Instance and Class Variables
  • Encapsulation
  • Abstraction
  • Inheritance
  • Polymorphism
  • Composition
  • Method Overriding
  • Operator Overloading
  • Custom Exceptions
  • Code Organization
  • Clean Code Principles

📂 Repository Structure

object_oriented_programming/
├── abstraction/
├── classes/
├── clean_code/
├── encapsulation/
├── inheritance/
├── polymorphism/
├── LICENSE
└── README.md

Each directory contains independent exercises and examples focused on a specific OOP concept.


📖 Learning Objectives

This repository demonstrates practical understanding of:

  • Designing reusable classes
  • Applying inheritance to reduce code duplication
  • Protecting object state through encapsulation
  • Building flexible systems with polymorphism
  • Using abstraction to simplify interfaces
  • Writing maintainable, readable Python code
  • Following object-oriented design principles

🛠 Technologies

  • Python 3
  • Object-Oriented Programming
  • Git
  • GitHub

🚀 Getting Started

Clone the repository:

git clone https://github.com/ikwukao/object_oriented_programming.git

Navigate into the project:

cd object_oriented_programming

Browse to any topic directory and run the desired exercise:

cd inheritance
python3 main.py

Some exercises are designed for online learning platforms and may not include standalone executable programs.


📁 Module Overview

📦 Classes

Introduction to defining classes, creating objects, constructors, attributes, and instance methods.

🔒 Encapsulation

Examples demonstrating data hiding, private attributes, getter methods, and controlled access to object state.

🏗 Inheritance

Projects illustrating parent-child relationships, constructor chaining with super(), and code reuse.

🔄 Polymorphism

Exercises showing method overriding, dynamic behavior, and interchangeable object interfaces.

🎭 Abstraction

Implementations using abstract base classes and shared interfaces to hide implementation details.

✨ Clean Code

Examples focused on writing readable, maintainable, and well-structured Python code following common software engineering practices.


💡 Skills Demonstrated

  • Object-Oriented Design
  • Software Architecture Fundamentals
  • Problem Solving
  • Python Programming
  • Code Reusability
  • Modular Development
  • Method Overriding
  • Operator Overloading
  • Exception Handling

🎯 Repository Purpose

This repository serves as both a learning resource and a portfolio of Python Object-Oriented Programming exercises. It documents my progress in mastering OOP concepts that form the foundation of modern backend development.


📈 Future Improvements

Potential additions include:

  • Design Patterns (Factory, Strategy, Observer)
  • SOLID Principles
  • Unit Testing with pytest
  • UML Class Diagrams
  • Type Hint Enhancements
  • Python Dataclasses
  • Mixins and Multiple Inheritance
  • Real-world OOP Projects

🤝 Contributing

Suggestions, improvements, and discussions are welcome. Feel free to open an issue or submit a pull request.


📄 License

This project is licensed under the MIT License. See the LICENSE file for details.


👨‍💻 Author

Ikwuka Okoye

Backend Engineer (Python & Go)

Always learning, always building.

About

Python implementations of Object-Oriented Programming concepts including classes, encapsulation, inheritance, polymorphism, abstraction, operator overloading, and clean code practices.

Topics

Resources

License

Stars

1 star

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages