{{Short description|Semantic instance with state, behavior, and identity}}
In software development, an '''object''' is a semantic entity that has state, behavior, and identity.<ref name="ooa">{{cite book|title=Object-Oriented Analysis and Design with Applications |edition=3 |date=April 30, 2007 |author1=Grady Booch |author2=Robert Maksimchuk |author3=Michael Engle |author4=Bobbi Young |author5=Jim Conallen |author6=Kelli Houston |isbn=978-0201895513 |publisher= Addison-Wesley Professional}}</ref><ref name="Why Natural Scientists Should Care About Object-Oriented Technology">{{Cite web | url=http://www.literateprogramming.com/quantumoo.pdf | title=Is Schrödinger's Cat Object-Oriented? | website=www.literateprogramming.com | author=Adolfo M. Nemirovsky}}</ref><ref name='Distributed Object-Based Programming Systems">{{Cite web | url=https://dl.acm.org/doi/pdf/10.1145/103162.103165| title=Distributed Object-Based Programming Systems | website=dl.acm.org}}</ref><ref>{{Cite web | url=https://dl.acm.org/doi/pdf/10.1145/38807.38823| title=Dimensions of Object-Based Language Design | website=dl.acm.org}}</ref> An object can model some part of reality or can be an invention of the design process whose collaborations with other such objects serve as the mechanisms that provide some higher-level behavior. Put another way, an object represents an individual, identifiable item, unit, or entity, either real or abstract, with a well-defined role in the problem domain.<ref name="ooa"></ref>{{rp|76}}
A programming language can be classified based on its support for objects. A language that provides an encapsulation construct for state, behavior, and identity is classified as object-based. If the language also provides polymorphism and inheritance it is classified as object-oriented.<ref>{{Cite web| title=A Brief History of the Object-Oriented Approach | url=https://www.eng.uwo.ca/electrical/faculty/capretz_l/docs/publications/ACM-SIGSOFT-v2.pdf | archive-url=https://web.archive.org/web/20170808195718/http://eng.uwo.ca/electrical/faculty/capretz_l/docs/publications/acm-sigsoft-v2.pdf | archive-date=2017-08-08}}</ref>{{Dubious|reason=this contradicts the highest article about OOP|date=November 2025}} A language that supports creating an object from a class is classified as class-based. A language that supports object creation via a template object is classified as prototype-based.
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.<ref name="ooa"/>{{rp|39}} * In the relational model of database management, aspects such as table and column may act as objects.<ref name=Oppel>{{cite book |first=Andy |last=Oppel |title=SQL Demystified |publisher=McGraw Hill |year=2005| page=7 |isbn=0-07-226224-9}}</ref>
* Objects of a distributed computing system tend to be larger grained, longer lasting, and more service-oriented than programming objects.
In purely object-oriented programming languages, such as Java and C#, all classes might be part of an inheritance tree such that the root class is <code>Object</code>, meaning all objects instances of <code>Object</code> or implicitly extend <code>Object</code>.
==See also== {{Columns-list|colwidth=22em| <!--♦♦♦ Please keep the list in alphabetical order ♦♦♦-->
* Attribute (object-oriented programming) * Business object * Class (computer programming) * Class-based programming * Data transfer object * Declaration (computer programming) * Distributed object * Instance (computer science) * Metaobject * Method (computer programming) * Object-capability model * Object composition * Object copying * Object graph * Object lifetime * Object-based language * Object-oriented programming * Pointer (computer programming) * Reference (computer science) * Semantics (logic) * Value object
}}
==References== {{Reflist}}
==External links== *[http://java.sun.com/docs/books/tutorial/java/concepts/object.html ''What Is an Object?''] from ''The Java Tutorials''
{{Software engineering}} {{Data types}} {{Authority control}}
{{DEFAULTSORT:Object (computer science)}} Category:Object (computer science) Category:Data types Category:Composite data types