Object (computer science): Difference between revisions
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| | {{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>{{ | 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== | ||
{{Columns-list|colwidth=22em| | |||
* | <!--♦♦♦ Please keep the list in alphabetical order ♦♦♦--> | ||
* | |||
* | * [[Attribute (object-oriented programming)]] | ||
* | * [[Business object]] | ||
* | * [[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:Data types]] | [[Category:Data types]] | ||
[[Category:Composite data types]] | [[Category:Composite data types]] | ||
Latest revision as of 19:19, 27 November 2025
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:
- 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.[1]Template:Rp
- In the relational model of database management, aspects such as table and column may act as objects.[6]
- 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 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" />
Script error: No such module "Check for unknown parameters".
External links
- What Is an Object? from The Java Tutorials
Script error: No such module "Navbox". Template:Data types Template:Authority control