DEV Community

Cover image for Day 14 of My AI & Data Mastery Journey: From Python to Generative AI
Nitin-bhatt46
Nitin-bhatt46

Posted on

Day 14 of My AI & Data Mastery Journey: From Python to Generative AI

OOPs - Object-Oriented Programming

Goal of OOPs

OOPs is a way of structuring code so that:

It becomes more organized,

Easier to maintain and scale, and

Mirrors real-world entities (like customers, products, users, transactions).

Instead of writing one long script, we group data and functions together into logical “objects”.

Core Concepts of OOPs

1. Class 🏗️

A class is like a blueprint or template.
It defines what an object will have (data) and can do (actions).

class Car:
def init(self, brand, model):
self.brand = brand # attribute
self.model = model # attribute

def drive(self):            # method
    print(f"{self.brand} {self.model} is driving.")
Enter fullscreen mode Exit fullscreen mode

*2. Object (Instance) *

An object is a real-world entity created from a class.
You can create multiple objects from one class, each with its own data.

car1 = Car("Tesla", "Model S")
car2 = Car("BMW", "M5")

car1.drive() # Tesla Model S is driving.
car2.drive() # BMW M5 is driving.

3. Attributes & Methods

Attributes = Variables inside a class that store data about the object.

Methods = Functions inside a class that define behavior.

Think of a human object — attributes are name, age, gender and methods are walk(), talk(), sleep().

4. Encapsulation 🔒

It means bundling data + methods together, so no one outside the class directly messes with them.

You can also make some data private (hidden) using _ or __.

class BankAccount:
def init(self, balance):
self.__balance = balance # private variable

def deposit(self, amount):
    self.__balance += amount
    print(f"New balance: {self.__balance}")
Enter fullscreen mode Exit fullscreen mode

5. Inheritance 👨‍👧

It allows one class to inherit properties and behavior from another.

class Vehicle:
def move(self):
print("Moving...")

class Car(Vehicle):
def wheels(self):
print("Has 4 wheels")

c = Car()
c.move() # inherited method
c.wheels()

✅ Helps reuse code and build hierarchy — like Employee → Manager → CEO.

6. Polymorphism 🧬

Same method name, but different behaviors in different classes.

class Dog:
def speak(self):
print("Woof!")

class Cat:
def speak(self):
print("Meow!")

for animal in [Dog(), Cat()]:
animal.speak()

7. Abstraction 🎭

Hiding complex details and showing only what’s necessary.

For example, when you drive a car — you press the pedal (simple), but you don’t see the engine mechanics.
In code, you hide complexity behind functions or classes.

⚙️ Why OOP Matters

✅ Keeps large projects manageable
✅ Makes code reusable
✅ Easier debugging
✅ Scales naturally with new features
✅ Mirrors real-world systems (useful in business software, games, AI models, etc.)

Top comments (1)

Collapse
 
nitinbhatt46 profile image
Nitin-bhatt46

Follow for more......................