0.1.2 Overview of Object Oriented Programming

Object-oriented Programming is very pervasive today. Software developer, web developer, mobile developer - All of these utilize object-oriented programming. Object-oriented programming is a mainstay in today’s world.

Object-oriented programming relies on modeling the world as objects. Objects group data and behavior together. The data is often referred to as the object’s state, and the behavior as its methods. Objects are often designed in hierarchies, If you were going shopping you may categorize objects as electronics, kitchen products, or books. The classification of a hierarchy is often referred to as inheritance, which will be covered further in more detail in a later document.

Encapsulation is another facet of object-oriented programming, which is the concept of protecting the integrity of objects from the outside world by putting the data and behavior (or code) as close together as possible. Encapsulated code is protected from interference. Put more simply, encapsulation is hiding data from the outside.

Polymorphism is another concept of object-oriented programming. This allows different types of objects to be treated in a similar fashion. Two different food items (such as a candy bar and a milkshake) are very different in nature - they look different, they have different nutritional value, yet both are consumed.

Abstraction is a concept that underlies software development as a whole. Any time an object is creating an object in a computer program, you are creating an abstraction of something in the real-world. An object sold online could have an image associated with it and have its own set of characteristics. Yet to the user browsing the internet the object is not really there - it is an abstraction of the object.