# Object (computer science)

> Mediated Wiki article. Canonical URL: https://mediated.wiki/source/Object_(computer_science)
> Markdown URL: https://mediated.wiki/source/Object_(computer_science).md
> Source: https://en.wikipedia.org/wiki/Object_(computer_science)
> Source revision: 1355470126
> License: Creative Commons Attribution-ShareAlike 4.0 International (https://creativecommons.org/licenses/by-sa/4.0/)

{{Short description|Semantic instance with state, behavior, and identity}}

In [software development](/source/software_development), an '''object''' is a [semantic](/source/Semantics_(programming_languages)) [entity](/source/entity) that has [state](/source/State_(computer_science)), [behavior](/source/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](/source/model) some part of [reality](/source/reality) or can be an [invention](/source/invention) of the [design process](/source/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](/source/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](/source/object-based_language). If the language also provides [polymorphism](/source/polymorphism_(computer_science)) and [inheritance](/source/inheritance_(object-oriented_programming)) it is classified as [object-oriented](/source/Object-oriented_programming).<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](/source/class_(computer_science)) is classified as [class-based](/source/class-based_programming). A language that supports object creation via a template object is classified as [prototype-based](/source/prototype-based_programming).

The concept of object is used in many different software contexts, including:

* Possibly the most common use is [in-memory](/source/Computer_memory) objects in a [computer program](/source/computer_program) written in an object-based language.

* [Information systems](/source/Information_systems) can be [modeled](/source/object-oriented_analysis_and_design) with objects representing their components and interfaces.<ref name="ooa"/>{{rp|39}}
 
* In the [relational model](/source/relational_model) of [database](/source/database) management, aspects such as [table](/source/Table_(database)) and [column](/source/Column_(database)) 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](/source/Distributed_object) of a [distributed computing](/source/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](/source/Java_(programming_language)) and [C#](/source/C_Sharp_(programming_language)), 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)](/source/Attribute_(object-oriented_programming))
* [Business object](/source/Business_object)
* [Class (computer programming)](/source/Class_(programming))
* [Class-based programming](/source/Class-based_programming)
* [Data transfer object](/source/Data_transfer_object)
* [Declaration (computer programming)](/source/Declaration_(computer_programming))
* [Distributed object](/source/Distributed_object)
* [Instance (computer science)](/source/Instance_(computer_science))
* [Metaobject](/source/Metaobject)
* [Method (computer programming)](/source/Method_(computer_programming))
* [Object-capability model](/source/Object-capability_model)
* [Object composition](/source/Object_composition)
* [Object copying](/source/Object_copying)
* [Object graph](/source/Object_graph)
* [Object lifetime](/source/Object_lifetime)
* [Object-based language](/source/Object-based_language)
* [Object-oriented programming](/source/Object-oriented_programming)
* [Pointer (computer programming)](/source/Pointer_(computer_programming))
* [Reference (computer science)](/source/Reference_(computer_science))
* [Semantics (logic)](/source/Semantics_(logic))
* [Value object](/source/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

---
Adapted from the Wikipedia article [Object (computer science)](https://en.wikipedia.org/wiki/Object_(computer_science)) by Wikipedia contributors ([contributor history](https://en.wikipedia.org/wiki/Object_(computer_science)?action=history)). Available under [Creative Commons Attribution-ShareAlike 4.0 International](https://creativecommons.org/licenses/by-sa/4.0/). Changes may have been made.
