Object oriented programming (OOP)
An object oriented programming is a form of programming in which the programmers define not only the data type of the data structure but also the forms of function which can be applied to the structure of the data. By the above process the data structure becomes an object which is inclusive of both the data & operations. Not only that, in such process the programmers can generate relationship between one object to the other.
Programmers who came from the Java background might regard "object oriented" to signify an approach of programming where a code & data are bound collectively in objects, whose configuration is based on class hierarchies with hiding of internal data that narrate to such properties as the encapsulation & protection. Whereas the Lisp programmers might consider that Lisp is object oriented as it presents polymorphism and are able to specify that one type is as fine as the other.
History: In between the late 1950s & early 1960s the terms ‘Object' & ‘Orientation' in contemporary sense of object oriented programming seems to first appear at MIT. During the 1960s in the atmosphere of artificial Intelligence group an "object" can be referred to the identified items or Lisp atoms, with attributes. Object as a formal conception in programming were launched in the 1960s in the Simula 67 which is a programming language designed for the distinct event simulation that was created by Ole-Johan Dahl & Kristen Nygaard of the Oslo's Norwegain Computing Centre.
Features: Nearly 40 years of computing literature acknowledged a number of fundamental concepts, termed as the "quarks", which are found in the strong definition of the Oriental programming language. Although not all of the concepts are to be found in all Object oriented programming language, the concepts that can be found in majority are as follows:
- Dynamic dispatch, as the object itself recognizes codes & execute accordingly.
- Encapsulation of the objects.
- Subtype Polymorphism.
- Object Inheritance.
- Open resurrection, that allows a method body to invoke another method body associated in the same object.
In addition to this the OOP can include few other concepts, which are:
- Classes of Objects
- Instances of classes
- Methods that act on the objects
- Message passing
- Abstraction
Decoupling: This method refers to the careful controls that separate code modules from particular use cases, which increases code re-usability. A frequent exercise of decoupling in OOP is to decouple the encapsulation polymorphically.