Object Oriented Programming

background image
Home / Learn / Programming Fundamentals /
Object Oriented Programming

Object-oriented programming (OOP) is a programming paradigm that is based on the concept of "objects", which can contain data and code that manipulate that data. In OOP, you define the data and the code that operates on that data within so-called "class" definitions, and then you create "instances" of those classes.

Here are some key concepts in OOP:

  • Classes: A class is a template for creating objects. It defines the data (also known as attributes or properties) and the code (also known as methods or functions) that manipulate the data.

  • Objects: An object is an instance of a class. It contains the actual data and the code that operates on that data.

  • Inheritance: Inheritance is a way to create a new class that is a modified version of an existing class. The new class is called the subclass, and the existing class is the superclass. The subclass inherits attributes and methods from the superclass and can also have additional attributes and methods of its own.

  • Polymorphism: Polymorphism is the ability to use a single interface to perform different tasks. For example, you can have multiple classes that all have a "calculate" method, but each class might have a different implementation of the method that is specific to that class.

OOP allows you to create complex programs by organizing your code into classes and objects, which can make it easier to understand and maintain. It is a popular programming paradigm that is used in many programming languages, such as Python, Java, C++, and more.

Here are some examples of object-oriented programming in Python:

class Dog:
    def __init__(self, name, age, breed):
        self.name = name
        self.age = age
        self.breed = breed

    def bark(self):
        print("Woof!")

dog1 = Dog("Fido", 3, "Labrador")
dog2 = Dog("Buddy", 5, "Poodle")

print(dog1.name)  # Output: "Fido"
print(dog2.age)   # Output: 5

dog1.bark()  # Output: "Woof!"
dog2.bark()  # Output: "Woof!"

In this example, we define a Dog class with a __init__ method that is called when we create a new Dog object. The __init__ method sets the name, age, and breed attributes for the object. The Dog class also has a bark method that prints "Woof!".

We create two Dog objects, dog1 and dog2, and set their name, age, and breed attributes. We can then access these attributes using dot notation (e.g. dog1.name) and call the bark method on each object (e.g. dog1.bark()).