Semantic instance with state, behavior, and identity
Insoftware development, anobject is anentity semantic that hasstate,behavior, andidentity.[1][2][3][4]An object canmodel some part ofreality or can be aninvention of thedesign 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
Aprogramming language can be classified based on its support for objects. A language that provides an encapsulation construct for state, behavior, and identity is classified asobject-based. If the language also providespolymorphism andinheritance it is classified asobject-oriented.[5][dubious –discuss] A language that supports creating an object from aclass is classified asclass-based. A language that supports object creation via a template object is classified asprototype-based.
The concept of object is used in many different software contexts, including:
Possibly the most common use isin-memory objects in acomputer program written in an object-based language.
Objects of adistributed computing system tend to be larger grained, longer lasting, and more service-oriented than programming objects.
In purely object-oriented programming languages, such asJava andC#, all classes might be part of an inheritance tree such that the root class isObject, meaning all objects instances ofObject or implicitly extendObject.
^abcGrady 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.ISBN978-0201895513.