Concept Essay Final
Object Oriented Programming was developed in early 1990s. According to Wikipedia, "Object-oriented programming (OOP) is a programming paradigm that uses "objects" - data structures consisting of data fields and methods together with their interactions - to design applications and computer programs (2010)." It became very popular because it was simple for programmers to write and easy to understand by others. OOP became all time favorite to many software company because if it's simplicity and power. OOP helped programmers to manage their code, and to reduce the complexity using Encapsulation, Abstraction, and Polymorphism features. In software development world, Encapsulation, Abstraction, and Polymorphism are considered as three main Gods of OOP.
Encapsulation is first important concept of object-orientated programming. According to Marton," It is the act of placing data and the operations that perform on that data in the same class (2006)." In simple language Encapsulation is a feature that allows a programmer to hide the information from others. If a programmer does not want others to change the behavior of his implementation, he would place a keyword "private' in front of that component. This concept is used for common classes like array, stack, link list, and heap. Many times a programs just want to include those classes in there code, they don't have to know how it's implement. Encapsulation allows the implementations to add more details the code without affecting private sections of the code.
Inheritance is another important concept of object-oriented programming. According to Mitchell, "Inheritance is a way to form new class to use the implementation of a class that has already been defined. Inheritance is employed to help reuse existing code with little or no modification (2003)." The new class is referred as Sub-class, child, and the class which is already defined is referred to as Super-class, ancestor. From a programmers point of view the inheritance is used to show hierarchy in between related classes.
For example, we have a group of class that represents geometric shapes. We would implement a superclass called geoObject which will include common features like length, width, and parameter. The driven class will be like rectangle, triangle, square, etc. All the sub geometric figure class will inherit the super class geoObject. Inheritance is a very powerfully tool, if the superclass has thousand lines of code, then inheriting that class in many parts of code will save code replication and support code reusability mechanism.
Polymorphism is another great feature of object-oriented programming. According to Martin, "Same interface, different implementation. It is the ability to substitute one class for another. This means that different classes may contain the same method names, but the result which is returned by each method will be different as the code behind each method (the implementation) is different in each class (2006)." In other words it means 'many shapes'. Going back to geometric classes each class will have a function which calculates the area, and parameter of that specific shape. The name of function is same but the formula to calculate will be different. Polymorphism is great way to communicate between objects without understanding the type of object.
Object-oriented programming is very important when we are talking about designing software. It supports reusability and simplicity through its great features like Encapsulation, Inheritance and Polymorphism. That is the reason Object-oriented programming is supported by most of the languages today.
- Marston Tony, What is Object Oriented Programming (OOP)?, 3rd December 2006, Retrieved Feb 11, 2010, http://www.tonymarston.net/php-mysql/what-is-oop.html
- Mitchell John C, Concepts in programming languages, Cambridge University Press, 2003, ISBN 0521780985, chapter 10 "Concepts in object-oriented languages"
- Pokkunuri, B. P. 1989. Object Oriented Programming. SIGPLAN Not. 24, 11 (Nov. 1989), 96-101. DOI= http://doi.acm.org.library.capella.edu/10.1145/71605.71612
- Tan,H.,Yang,Y.,&Bian,L..(2006). Systematic Transformation of Functional Analysis Model into OO Design and Implementation.IEEE Transactions on Software Engineering,32(2),111-135. Retrieved February 7, 2010, from ABI/INFORM Global. (Document ID:1000753691).
- Wikipedia, Retrieved Feb 11, 2010. http://en.wikipedia.org/wiki/Object-oriented_programming