In software development, an object is a semantic entity that has state, behavior, and identity.1234 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: 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.5 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: 39
- 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
See also
- 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
References
- Grady Booch; Robert Maksimchuk; Michael Engle; Bobbi Young; Jim Conallen; Kelli Houston (April 30, 2007). Object-Oriented Analysis and Design with Applications (3 ed.). Addison-Wesley Professional. ISBN 978-0201895513.
- Adolfo M. Nemirovsky. "Is Schrödinger's Cat Object-Oriented?" (PDF). www.literateprogramming.com.
- "Distributed Object-Based Programming Systems". dl.acm.org.
- "Dimensions of Object-Based Language Design". dl.acm.org.
- "A Brief History of the Object-Oriented Approach" (PDF). Archived from the original (PDF) on 2017-08-08.
- Oppel, Andy (2005). SQL Demystified. McGraw Hill. p. 7. ISBN 0-07-226224-9.