What is "oop"
Object orientation is a paradigm of analysis, design and programming of software systems based on the composition and interaction between several units of software called objects.
In some contexts, it is preferred to use object-oriented modeling rather than programming. In fact, the "object orientation" paradigm has conceptual bases and origin in the field of study of cognition, which influenced the area of artificial intelligence and linguistics, in the field of abstraction of real world concepts. As a modeling method, it is considered the best strategy to eliminate the "semantic gap", recurrent difficulty in the process of modeling the real world of the problem domain in a set of software components that is the most faithful in its representation of this domain. It would facilitate the communication of the modeling professional and the user of the target area, to the extent that the correlation of the symbology and abstract concepts of the real world and the modeling tool (concepts, terminology, symbols, graphics and strategies) was the most obvious, natural and accurate possible.
Object-oriented programming implements a set of classes that define the objects present in the software system. Each class determines the behavior (defined in the methods) and possible states (attributes) of its objects, as well as the relationship with other objects. C++, C#, VB.NET, Java, Object Pascal, Objective-C, Python, Supercollider, Ruby, and Smalltalk are examples of object-oriented programming languages. Actionscript, Coldfusion, Javascript, PHP (as of version 4.0), Perl (as of version 5) and Visual Basic (as of version 4) are examples of object-oriented programming languages.