Search results
Results from the WOW.Com Content Network
Object-oriented programming (OOP) is a programming paradigm based on the concept of objects, [1] which can contain data and code: data in the form of fields (often known as attributes or properties), and code in the form of procedures (often known as methods).
In object-oriented programming, a class defines the shared aspects of objects created from the class. The capabilities of a class differ between programming languages, but generally the shared aspects consist of state and behavior that are each either associated with a particular object or with all objects of that class. [1] [2]
The concept of object is used in many different software contexts, including: Possibly the most common use is in-memory objects in a computer program written in an object-based language. Information systems can be modeled with objects representing their components and interfaces.
All object-oriented programming (OOP) systems support encapsulation, [2] [3] but encapsulation is not unique to OOP. Implementations of abstract data types, modules, and libraries also offer encapsulation. The similarity has been explained by programming language theorists in terms of existential types. [4]
In object-oriented programming, behavior is sometimes shared between classes which are not related to each other. For example, many unrelated classes may have methods to serialize objects to JSON . Historically, there have been several approaches to solve this without duplicating the code in every class needing the behavior.
Such object models are usually defined using concepts such as class, generic function, message, inheritance, polymorphism, and encapsulation. There is an extensive literature on formalized object models as a subset of the formal semantics of programming languages.
Object-oriented programming is based on using objects to encapsulate data and behavior. It uses two main techniques for assembling and composing functionality into more complex ones, sub-typing and object composition. [2]
The concepts of encapsulation and modularity are not unique to object-oriented programming. Indeed, in many ways the object-oriented approach is simply the logical extension of previous paradigms such as abstract data types and structured programming .