HOME

TheInfoList




In
computer science Computer science deals with the theoretical foundations of information, algorithms and the architectures of its computation as well as practical techniques for their application. Computer science is the study of , , and . Computer science ...
, an object can be a variable, a
data structure In computer science Computer science deals with the theoretical foundations of information, algorithms and the architectures of its computation as well as practical techniques for their application. Computer science is the study of ...

data structure
, a
function Function or functionality may refer to: Computing * Function key A function key is a key on a computer A computer is a machine that can be programmed to carry out sequences of arithmetic or logical operations automatically. Modern comp ...
, or a
method Method ( grc, μέθοδος, methodos) literally means a pursuit of knowledge, investigation, mode of prosecuting such inquiry, or system. In recent centuries it more often means a prescribed process for completing a task. It may refer to: *Scient ...
. As regions of
memory Memory is the faculty of the by which or is , stored, and retrieved when needed. It is the retention of information over time for the purpose of influencing future action. If s could not be remembered, it would be impossible for language, r ...
, they contain
value Value or values may refer to: * Value (ethics) it may be described as treating actions themselves as abstract objects, putting value to them ** Values (Western philosophy) expands the notion of value beyond that of ethics, but limited to Western s ...
and are referenced by
identifiers An identifier is a name that identifies (that is, labels the identity of) either a unique object or a unique ''class'' of objects, where the "object" or class may be an idea, physical countable In mathematics Mathematics (from Ancient Gree ...
. In the
object-oriented Object-oriented programming (OOP) is a programming paradigm Program, programme, programmer, or programming may refer to: Business and management * Program management, the process of managing several related projects * Time management * P ...
programming
paradigm In science Science () is a systematic enterprise that Scientific method, builds and organizes knowledge in the form of Testability, testable explanations and predictions about the universe."... modern science is a discovery as well as ...
, ''object'' can be a combination of variables, functions, and data structures; in particular in class-based variations of the paradigm it refers to a particular instance of a
class Class or The Class may refer to: Common uses not otherwise categorized * Class (biology), a taxonomic rank * Class (knowledge representation), a collection of individuals or objects * Class (philosophy), an analytical concept used differently f ...
. In the
relational model The relational model (RM) for database In computing, a database is an organized collection of Data (computing), data stored and accessed electronically from a computer system. Where databases are more complex they are often developed using form ...
of
database In computing, a database is an organized collection of Data (computing), data stored and accessed electronically from a computer system. Where databases are more complex they are often developed using formal #Design and modeling, design and mode ...

database
management, an object can be a
table Table may refer to: * Table (information) A table is an arrangement of data Data are units of information Information can be thought of as the resolution of uncertainty; it answers the question of "What an entity is" and thus define ...
or
column A column or pillar in architecture and structural engineering is a structural element that transmits, through compression (physical), compression, the weight of the structure above to other structural elements below. In other words, a column is ...
, or an association between data and a database entity (such as relating a person's age to a specific person).


Object-based languages

An important distinction in programming languages is the difference between an object-oriented language and an object-based language. A language is usually considered object-based if it includes the basic capabilities for an object: identity, properties, and attributes. A language is considered object-oriented if it is object-based and also has the capability of polymorphism, inheritance, encapsulation, and, possibly, composition. Polymorphism refers to the ability to overload the name of a function with multiple behaviors based on which object(s) are passed to it. Conventional message passing discriminates only on the first object and considers that to be "sending a message" to that object. However, some OOP languages such as
Flavors Flavor, or flavour, is the perceptual Perception (from the Latin Latin (, or , ) is a classical language belonging to the Italic languages, Italic branch of the Indo-European languages. Latin was originally spoken in the area arou ...
and the
Common Lisp Object System The Common Lisp Object System (CLOS) is the facility for object-oriented programming which is part of American National Standards Institute, ANSI Common Lisp. CLOS is a powerful dynamic programming language, dynamic object system which differs radi ...
(CLOS) enable discriminating on more than the first parameter of the function. Inheritance is the ability to subclass an object class, to create a new class that is a subclass of an existing one and inherits all the data constraints and behaviors of its parents but also adds new and/or changes one or more of them.


Object-oriented programming

Object-oriented programming is an approach to designing modular reusable software systems. The object-oriented approach is an evolution of good design practices that go back to the very beginning of computer programming. Object-orientation is simply the logical extension of older techniques such as
structured programming Structured programming is a programming paradigm Programming paradigms are a way to classify programming languages based on their features. Languages can be classified into multiple paradigms. Some paradigms are concerned mainly with impli ...
and
abstract data types In computer science Computer science deals with the theoretical foundations of information, algorithms and the architectures of its computation as well as practical techniques for their application. Computer science is the study of Algo ...
. An object is an abstract data type with the addition of polymorphism and
inheritance Inheritance is the practice of passing on private property Private property is a legal designation for the ownership of property by non-governmental legal entities. Private property is distinguishable from public property Public property i ...
. Rather than structure programs as code and data, an object-oriented system integrates the two using the concept of an "object". An object has state (data) and behavior (code). Objects can correspond to things found in the real world. So for example, a graphics program will have objects such as ''circle'', ''square'', ''menu''. An online shopping system will have objects such as ''shopping cart, customer, product''. The shopping system will support behaviors such as ''place order'', ''make payment'', and ''offer discount''. The objects are designed as class hierarchies. So for example with the shopping system there might be high level classes such as ''electronics product'', ''kitchen product'', and ''book''. There may be further refinements for example under ''electronic products'': ''CD Player, DVD player'', etc. These classes and subclasses correspond to sets and subsets in mathematical logic.


Specialized objects

An important concept for objects is the
design pattern A design pattern is the re-usable form of a solution to a design problem. The idea was introduced by the architect Christopher Alexander Christopher Wolfgang Alexander (born 4 October 1936 in Vienna, Austria) is a widely influential British-Am ...
. A design pattern provides a reusable template to address a common problem. The following object descriptions are examples of some of the most common design patterns for objects. *
Function object In computer programming Computer programming is the process of designing and building an executable computer program to accomplish a specific computing result or to perform a specific task. Programming involves tasks such as: analysis, generat ...
: an object with a single method (in C++, this method would be the function operator, "operator()") that acts much like a function (like a C/C++ pointer to a function). *
Immutable object In object-oriented Object-oriented programming (OOP) is a programming paradigm Program, programme, programmer, or programming may refer to: Business and management * Program management, the process of managing several related projects ...
: an object set up with a fixed state at creation time and which does not change afterward. *
First-class object In programming language design, a first-class citizen (also type, object, entity, or value) in a given programming language A programming language is a formal language comprising a Instruction set architecture, set of instructions that produce ...
: an object that can be used without restriction. * Container object: an object that can contain other objects. *
Factory object In object-oriented programming (OOP), a factory is an object Object may refer to: General meanings * Object (philosophy), a thing, being, or concept ** Entity, something that is tangible and within the grasp of the senses ** Object (abstra ...
: an object whose purpose is to create other objects. *
MetaobjectIn computer science Computer science deals with the theoretical foundations of information, algorithms and the architectures of its computation as well as practical techniques for their application. Computer science is the study of Algorith ...
: an object from which other objects can be created (compare with a
class Class or The Class may refer to: Common uses not otherwise categorized * Class (biology), a taxonomic rank * Class (knowledge representation), a collection of individuals or objects * Class (philosophy), an analytical concept used differently f ...
, which is not necessarily an object). * Prototype object: a specialized metaobject from which other objects can be created by copying *
God object In object-oriented programming Object-oriented programming (OOP) is a programming paradigm based on the concept of "Object (computer science), objects", which can contain data and code: data in the form of Field (computer science), fields (o ...
: an object that knows or does too much (it is an example of an
anti-pattern An anti-pattern is a common response to a recurring problem that is usually ineffective and risks being highly counterproductive. The term, coined in 1995 by computer programmer Andrew Koenig, was inspired by the book ''Design Patterns (book), Desi ...
). * Singleton object: an object that is the only instance of its class during the lifetime of the program. * Filter object: an object that receives a stream of data as its input and transforms it into the object's output. Often the input and output streams are streams of characters, but these also may be streams of arbitrary objects. These are generally used in wrappers since they conceal the existing implementation with the abstraction required at the developer side.


Distributed objects

The object-oriented approach is not just a programming model. It can be used equally well as an
interface definition language An interface description language or interface definition language (IDL), is a specification language A specification language is a formal language In mathematics Mathematics (from Ancient Greek, Greek: ) includes the study of such topics a ...
for distributed systems. The objects in a
distributed computing Distributed computing is a field of computer science Computer science deals with the theoretical foundations of information, algorithms and the architectures of its computation as well as practical techniques for their application. Comp ...
model tend to be larger grained, longer lasting, and more service-oriented than programming objects. A standard method to package distributed objects is via an Interface Definition Language (IDL). An IDL shields the client of all of the details of the distributed server object. Details such as which computer the object resides on, what
programming language A programming language is a formal language In logic, mathematics, computer science, and linguistics, a formal language consists of string (computer science), words whose symbol (formal), letters are taken from an alphabet (computer science) ...

programming language
it uses, what
operating system An operating system (OS) is system software System software is software designed to provide a platform for other software. Examples of system software include operating systems (OS) like macOS, Linux, Android (operating system), Android and Mi ...

operating system
, and other platform-specific issues. The IDL is also usually part of a distributed environment that provides services such as transactions and persistence to all objects in a uniform manner. Two of the most popular standards for distributed objects are the
Object Management Group The Object Management Group (OMG) is a computer industry standardization, standards consortium. OMG Task Forces develop enterprise integration standards for a range of technologies. Business activities The goal of the OMG was a common portable ...
's
CORBA The Common Object Request Broker Architecture (CORBA) is a Standardization, standard defined by the Object Management Group (OMG) designed to facilitate the communication of systems that are deployed on diverse platforms. CORBA enables collabora ...
standard and
Microsoft Microsoft Corporation is an American multinational corporation, multinational technology company, technology corporation which produces Software, computer software, consumer electronics, personal computers, and related services. Its best-know ...

Microsoft
's DCOM. In addition to distributed objects, a number of other extensions to the basic concept of an object have been proposed to enable distributed computing: *''Protocol objects'' are components of a
protocol stack The protocol stack or network stack is an implementation Implementation is the realization of an application, or execution of a plan A plan is typically any diagram or list of steps with details of timing and resources, used to achieve an Go ...
that enclose network communication within an object-oriented interface. *'' Replicated objects'' are groups of distributed objects (called ''replicas'') that run a distributed multi-party protocol to achieve high consistency between their internal states, and that respond to requests in a coordinated way. Examples include fault-tolerant
CORBA The Common Object Request Broker Architecture (CORBA) is a Standardization, standard defined by the Object Management Group (OMG) designed to facilitate the communication of systems that are deployed on diverse platforms. CORBA enables collabora ...
objects. *'' Live distributed objects'' (or simply '' live objects'') generalize the ''replicated object'' concept to groups of replicas that might internally use any distributed protocol, perhaps resulting in only a weak consistency between their local states. Some of these extensions, such as ''distributed objects'' and ''protocol objects'', are domain-specific terms for special types of "ordinary" objects used in a certain context (such as
remote method invocationIn a distributed computing environment, distributed object communication realizes communication between distributed objects. The main role is to allow objects to access data and invoke Method (computer programming), methods on remote objects (objects ...

remote method invocation
or protocol composition). Others, such as ''replicated objects'' and ''live distributed objects'', are more non-standard, in that they abandon the usual case that an object resides in a single location at a time, and apply the concept to groups of entities (replicas) that might span across multiple locations, might have only weakly consistent state, and whose membership might dynamically change.


The Semantic Web

The
Semantic Web The Semantic Web (sometimes known as Web 3.0) is an extension of the World Wide Web The World Wide Web (WWW), commonly known as the Web, is an information system An information system (IS) is a formal, sociotechnical Sociotechnica ...

Semantic Web
is essentially a distributed-objects framework. Two key technologies in the Semantic Web are the
Web Ontology Language The Web Ontology Language (OWL) is a family of Knowledge representation and reasoning, knowledge representation languages for authoring Ontology (information science), ontologies. Ontologies are a formal way to describe taxonomies and classificatio ...
(OWL) and the
Resource Description Framework The Resource Description Framework (RDF) is a family of World Wide Web Consortium (W3C) specifications originally designed as a metadata data model. It has come to be used as a general method for conceptual description or modeling of information t ...
(RDF). RDF provides the capability to define basic objects—names, properties, attributes, relations—that are accessible via the Internet. OWL adds a richer object model, based on set theory, that provides additional modeling capabilities such as
multiple inheritance Multiple inheritance is a feature of some computer s in which an object or can features from more than one parent object or . It is distinct from single inheritance, where an object or class may only inherit from one particular object or class. ...

multiple inheritance
. OWL objects are not like standard large-grained distributed objects accessed via an Interface Definition Language. Such an approach would not be appropriate for the Internet because the Internet is constantly evolving and standardization on one set of interfaces is difficult to achieve. OWL objects tend to be similar to the kinds of objects used to define application domain models in programming languages such as Java and
C++ C++ () is a general-purpose programming language In computer software, a general-purpose programming language is a programming language dedicated to a general-purpose, designed to be used for writing software in a wide variety of application ...

C++
. However, there are important distinctions between OWL objects and traditional object-oriented programming objects. Traditional objects get compiled into static hierarchies usually with single inheritance, but OWL objects are dynamic. An OWL object can change its structure at run time and can become an instance of new or different classes. Another critical difference is the way the model treats information that is currently not in the system. Programming objects and most database systems use the "
closed-world assumptionThe closed-world assumption (CWA), in a Mathematical logic, formal system of logic used for knowledge representation, is the presumption that a statement that is true is also known to be true. Therefore, conversely, what is not currently known to be ...
". If a fact is not known to the system that fact is assumed to be false. Semantic Web objects use the
open-world assumptionIn a Mathematical logic, formal system of logic used for knowledge representation, the open-world assumption is the assumption that the truth value of a statement (logic), statement may be true irrespective of whether or not it is ''known'' to be tru ...
, a statement is only considered false if there is actual relevant information that it is false, otherwise it is assumed to be unknown, neither true nor false. OWL objects are actually most like objects in artificial intelligence
frame languageFrames are an artificial intelligence data structure used to divide knowledge into substructures by representing "stereotyped situations". They were proposed by Marvin Minsky in his 1974 article "A Framework for Representing Knowledge". Frames are th ...
s such as
KL-ONE KL-ONE (pronounced "kay ell won") is a knowledge representation system in the tradition of semantic networks and frames; that is, it is a frame language. The system is an attempt to overcome semantic indistinctness in semantic network represent ...
and Loom. The following table contrasts traditional objects from Object-Oriented programming languages such as Java or C++ with Semantic Web Objects:


See also

*
Object lifetime In object-oriented programming (OOP), the object lifetime (or life cycle) of an object is the time between an object's creation and its destruction. Rules for object lifetime vary significantly between languages, in some cases between implementat ...
* Object copy *
Design pattern (computer science) In software engineering, a software design pattern is a general, reusability, reusable solution to a commonly occurring problem within a given context in software design. It is not a finished design that can be transformed directly into Source code, ...
*
Business object (computer science) A business object is an entity within a Multitier architecture, multitiered software application that works in conjunction with the data access layer, data access and business logic layers to transport data. For example, a "Manager" would be a ''b ...
*
Actor model The actor model in computer science Computer science deals with the theoretical foundations of information, algorithms and the architectures of its computation as well as practical techniques for their application. Computer science is the ...


References


External links


''What Is an Object?''
from ''The Java Tutorials''
''How to merge two or more php objects''
{{DEFAULTSORT:Object (computer science) Object-oriented programming Data types Composite data types