Understanding Object Oriented Programming
Object-oriented programming (OOP) is a computer programming model that organizes software design around data, or objects, rather than functions and logic. An object can be defined as a data field that has unique attributes and behavior.
OOP focuses on the objects that developers want to manipulate rather than the logic required to manipulate them. This approach to programming is well-suited for programs that are large, complex and actively updated or maintained.
Popular Object Oriented Programming Languages
. These languages includes:
- Java – Java is everywhere, and it is one of the most used and in-demand languages of all time. Java’s motto is ‘write once, run anywhere,’ and that is reflected in the number of platforms it runs on, and places it’s used.
- Python – Python is general purpose, and used in many places. However, Python has a strong foothold in the machine learning and data science and is one of the preferred languages for that new and ever-growing field.
- C++ – C++ has the speed of C with the functionality of classes and an object-oriented paradigm. It’s a compiled, fast, reliable, and powerful language used in so many applications that it’s even used to build compilers and interpreters for other languages.
Object Oriented Programming Principles
Object-oriented languages come with four principles; common properties that define them and make them significantly more efficient to use. Some people call them the four pillars of object-oriented programming:
- Encapsulation – Encapsulation is the concept of binding data to functions, which works as a security function to keep that data safe. For example, many OOP languages prevent anything other than specific methods in the class owning the data to access that data; this is often done explicitly to keep certain data safe. This also works on a functional level, as it prevents unwanted message passing; code outside of an object from interfering with code and data meant to stay within an object, and vice versa.
- Abstraction – Abstraction is the idea that if you’re doing one thing too often it should be its own entity. If a programmer is rewriting the same function over and over again for different objects, that function could be abstracted to become its own entity, and instanced by any object that requires it.
- Inheritance – Inheritance is what it sounds like, and is most often defined as a “is a” relationship. It lets certain classes be under the umbrella of other classes, and inherit information and functionality from that class, while also being able to expand on that functionality. It lets us reuse code that we’ve already typed in other classes.
- Polymorphism – Polymorphism means to take more than one shape, and in the sense of OOP languages, it refers to the ability to handle objects differently depending on what they are. It allows us to define different methods for handling objects based on their derived class. For example, if we needed to find the size of something, we might change how we measure it based on what it is. if it is a plank of wood I would measure it in inches, as opposed to a volume of water, which I would measure by weight. If we utilize polymorphism, we can create a function that can accept either object and still give us a sane measurement.
Advantages of Object Oriented Programming
One of the principal advantages of object-oriented programming techniques over procedural programming techniques is that they enable programmers to create modules that do not need to be changed when a new type of object is added. A programmer can simply create a new object that inherits many of its features from existing objects. This makes object-oriented programs easier to modify.