Computer Science
Object-oriented programming (OOP) is a programming paradigm based on the concept of "objects", which may
contain data, in the form of elds, often known as attributes; and code, in the form of procedures, often known as methods. A feature of objects is that an object's procedures can access and often modify the data elds of the object with which they are associated (objects have a notion of "this" or "self"). In OOP, computer programs are designed by making them out of objects that interact with one another. There is signi cant diversity of OOP languages, but the most popular ones are class-based, meaning that objects are instances of classes, which typically also determine their type. Many of the most widely used programming languages are multi-paradigm programming languages that support object-oriented programming to a greater or lesser degree, typically in combination with imperative, procedural programming. Object-oriented Programming uses objects, but not all of the associated techniques and structures are supported directly in languages that claim to support OOP.