A term loosely used to describe an identifiable component of a software system or design, now more commonly applied to a component that is in some sense self-contained, having an identifiable boundary. In object-oriented design, objects are the basic components from which the model of the system to be implemented is constructed.
In object-oriented programming, the term has a more precise definition. An object is an instance of a component comprising data structures and procedures (called methods) for manipulating the structures. These methods are activated by messages sent to the object, and the interior structure of the object is entirely hidden from any other object (a property called encapsulation). Objects are derived from a template, and the collection of objects that are instances of a particular template are said to form a class. A particularly important feature is inheritance, which allows new classes to be defined in terms of existing classes, inheriting some or all of the properties of an existing class. Some systems implement multiple inheritance, which allows a class to inherit properties from more than one parent class.
See also object-oriented architecture, object-oriented language.