Object (computer science): Difference between revisions

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search
imported>Fgnievinski
 
imported>Rofraja
Fix bare URLs references, add titles
 
(One intermediate revision by one other user not shown)
Line 1: Line 1:
{{Short description|Software abstraction with state, behavior, and identity}}
{{Short description|Semantic instance with state, behavior, and identity}}


In [[software development]], an '''object''' is an [[entity]] that has [[State (computer science)|state]], [[behavior]], and [[Identity (object-oriented programming)|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>{{rp|78}} 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}}
In [[software development]], an '''object''' is an [[entity]] semantic that has [[State (computer science)|state]], [[behavior]], and [[Identity (object-oriented programming)|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 language|object-based]]. If the language also provides [[polymorphism (computer science)|polymorphism]] and [[inheritance (object-oriented programming)|inheritance]] it is classified as [[Object-oriented programming|object-oriented]]. A language that supports creating an object from a [[class (computer science)|class]] is classified as [[class-based programming|class-based]]. A language that supports object creation via a template object is classified as [[prototype-based programming|prototype-based]].
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 language|object-based]]. If the language also provides [[polymorphism (computer science)|polymorphism]] and [[inheritance (object-oriented programming)|inheritance]] it is classified as [[Object-oriented programming|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 (computer science)|class]] is classified as [[class-based programming|class-based]]. A language that supports object creation via a template object is classified as [[prototype-based programming|prototype-based]].


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


* [[Distributed object|Objects]] of a [[distributed computing]] system tend to be larger grained, longer lasting, and more service-oriented than programming objects.
* [[Distributed object|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 Sharp (programming language)|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==
==See also==
*{{annotated link|Actor model}}
{{Columns-list|colwidth=22em|
*{{annotated link|Business object}}
<!--♦♦♦ Please keep the list in alphabetical order ♦♦♦-->
*{{annotated link|Instance (computer science)}}
 
*{{annotated link|Object lifetime}}
* [[Attribute (object-oriented programming)]]
*{{annotated link|Object copying}}
* [[Business object]]
*{{annotated link|Semantic Web}}
* [[Class (programming)|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==
==References==
Line 35: Line 60:
{{DEFAULTSORT:Object (computer science)}}
{{DEFAULTSORT:Object (computer science)}}
[[Category:Object (computer science)| ]]
[[Category:Object (computer science)| ]]
[[Category:Object-oriented programming]]
[[Category:Data types]]
[[Category:Data types]]
[[Category:Composite data types]]
[[Category:Composite data types]]

Latest revision as of 19:19, 27 November 2025

Template:Short description

In software development, an object is an entity semantic that has state, behavior, and identity. [1][2][3][4] 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.[1]Template:Rp

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.[5]Script error: No such module "Unsubst". 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:

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 Object, meaning all objects instances of Object or implicitly extend Object.

See also

Script error: No such module "Template wrapper".Script error: No such module "Check for unknown parameters".

References

<templatestyles src="Reflist/styles.css" />

  1. a b c Script error: No such module "citation/CS1".
  2. Script error: No such module "citation/CS1".
  3. Script error: No such module "citation/CS1".
  4. Script error: No such module "citation/CS1".
  5. Script error: No such module "citation/CS1".
  6. Script error: No such module "citation/CS1".

Script error: No such module "Check for unknown parameters".

External links

Script error: No such module "Navbox". Template:Data types Template:Authority control