Object Oriented Programming

This AlgoDaily course will describe the fundamentals of Object Oriented Programming and Object Oriented Design to you in the simplest way possible. This is a series of lessons that will start from the very basics of classes as blueprints and objects as buckets, and move through advanced topics like Object Oriented Design Patterns, UML diagrams, Adapters, Interfaces, etc. After completing this series, we believe that you can answer any question related to OOP in technical interviews, and use it at work.

Section Menu

How do I use this section?

1. LESSON

What Does OOP Mean? Intro to Object Oriented Programming

In this series, you will be introduced to the enormous domain of Object-Oriented Programming. Object-Oriented Programming (OOP) is not a library or framework - it is a programming paradigm. Many popular languages support the OOP paradigm (e.g., Java, C++, Python) and many languages don't (e.g., Erlang, Haskell, ML, C, Scheme, Lisp). However, OO...

2. LESSON

Object Oriented Programming Class Principles

Fundamental Properties of Object-Oriented Programming In this lesson, we will discuss the four fundamental properties of Object-Oriented Programming. These are the building blocks of programming in the OOP paradigm. In fact, OOP was actually primarily invented to help programmers enforce and follow these four basic properties while writing c...

3. LESSON

Special Methods and Concepts in Object Oriented Programming

Special Methods in Object-Oriented Programming Now you know the bare bones of Object-Oriented Programming. But, as I said in the previous lesson, there is still much more you have to discover. In today's lesson, we will go through a number of special functions that almost all OOP-supported programming languages have for convenience. ![Intro I...

4. LESSON

Advanced OOP: Class Access, Modifiers, Overloading

In this lesson, we'll be covering Advance Practices in Object-Orientated Programming. After getting through all the fundamentals of OOP, this tutorial is going to be a bit more relaxing. We will discuss some advanced practices with this technique. Keep in mind that these practices are essential when attempting to understand and use OOP. You can...

5. LESSON

The Abstract Class and Inheritance

Abstract Classes and Inheritance Today we will discuss abstract classes and inheritance. OOP is not just about creating classes and inheriting one class from another. There are several additional concepts and rules related to instantiating objects, overriding methods, and enforcing contracts which are necessary for creating some features a cl...

6. LESSON

Association, Aggregation, Composition and Casting in OOP

Association, Aggregation, and Composition in Object-Oriented Programming In today's lesson, we will learn relational concepts in object-oriented programming. You can find several definitions of association, composition, and aggregation on the Internet but most of them have convoluted explanations with no practical applications. These three...

7. LESSON

Understanding Encapsulation in Programming

So let us begin by answering the burning question, what is Encapsulation? To put it simply, encapsulation is the process of surrounding an object with other components in order to conceal its internal details from users. There are several examples of encapsulation in Java. This concept is easily demonstrated using the class keyword. This k...

8. LESSON

Collaborating in OOP systems

Collaborations in OOP systems First of all, let me congratulate you on your wonderful success. You have learned all the basics of object-oriented programming! However, let me remind you that this whole programming paradigm is designed to create well-engineered software by a group of people. OOP is all about collaborating with members of th...

9. LESSON

Object Oriented Programming Interview Questions Cheat Sheet

When preparing for an interview for a software engineering position, you should always keep in mind that besides knowing the certain technology you are interviewing for, you should be well-prepared with some basic Object-Oriented programming theory. Object-Oriented programming principles are the fundamental building block of every modern programm...

10. LESSON

Mutability Vs Immutability

Understanding Mutability & Immutability in Programming In the realm of software development, especially when dealing with object-oriented or functional programming paradigms, the concepts of mutability and immutability play a pivotal role. They influence not just how data is handled, but also the overall robustness, efficiency, and clarity of t...