Object Technology did not spring full blown from one person's mind. It is a collaboration of ideas that were developed over decades, so the terms may not always be consistent among implementations. Please tell us if you believe a definition is not correct or is incomplete.
The behavior of an object is how it acts and reacts to messages sent to it by other objects. Behavior is typically implemented within an object as methods that are defined in its class. "Behavior is how an object acts and reacts, in terms of its state changes and message passing; the outwardly visible and testable activity of an object" 1
A class is a general specification or description for a set of objects that defines their common structure (data), behavior (methods), and relationships.
A unit of code that provides a set of services through well-defined interfaces and is specifically designed and packaged to be reusable. A component acts like a "black box" that hides or encapsulates the details of how the services are actually implemented. Components can be mixed and matched to form larger systems. "For most of the industry, components are synonymous with encapsulated binary objects, most notably Java Beans and ActiveX controls. Support for inheritance and polymorphism is not critical for the definition of components." 5
Inheritance is a relationship between classes where one class is a parent of another. It implements "is-a" relationships between objects. Inheritance takes advantage of the commonality among objects to reduce complexity.
"An interface is a collection of operations that specify a service of a class or component. An interface therefore describes the externally visable behavior of that element. An interface might represent the complete behavior of a class or component or only a part of that behavior". 7
JavaBeans is the component architecture for the Java programming language. "A Java Bean is a reusable software component that can be manipulated visually in a builder tool." ... "Individual Java Beans will vary in the functionality they support, but the typical unifying features that distinguish a Java Bean are:
"An operation that one object performs on another." 1
"A class's methods typically contain the code that understands and manipulates an object's state. Some classes have public fields for programmers to manipulate directly, but in most cases this isn't a very good idea." 6 Methods implement an objects's outward behavior.
An object is an abstraction or simulation of physical things such as people and machines or intangible things such as events and processes that captures their characteristics and behavior. Objects and classes are the basic building blocks for object-oriented software design. "Something you can do things to. An object has state, behavior, and identity; the structure and behavior of similar objects are defined in their common class." 1
Persistence allows the state of an object to be saved to non-volatile storage such as a file or database and later restored even though the original creator of the object no longer exists.
A Property is a named characteristic or attribute of an object.
"A concept in type theory, according to which a name (such as a variable declaration) may denote objects of many different classes that are related by some common superclass; thus, any object denoted by this name is able to respond to some common set of operations in different ways." 1 Method overloading is also considered by some to be a form of polymorphism.
"The state of an object represents the cumulative results of its behavior." 1 It is the sum of an object's property values at an instance in time.
"The concrete representation of the state of an object. An object does not share its state with any other object, although all objects of the same class do share the same representation of their state." 1
The Unified Modeling Language is a graphical notation for describing object-oriented designs. It has been adopted as a standard by the Open Management Group with wide industry support. "The Unified Modeling Language (UML) is a language for specifying, visualizing, constructing, and documenting the artifacts of software systems, as well as for business modeling and other non-software systems." 4
1. Booch, G., Objected-Oriented Analysis And Design With Applications, 2nd Ed., Menlo Park, CA: Addison-Wesley, 1994
2. Javasoft, Java Beans specification 1.01
4. OMG UML Summary, Version 1.0, September 1, 1997
5. Kara, D., "Build vs. Buy: Maximizing the Potential of Components",Component Strategies, July, 1998
6. Arnold, A. and James Gosling, The Java Programming Language 2nd Ed., Menlo Park, CA: Addison Wesley Longman, Inc., 1998
7. Booch, G., James Rumbaugh, and Ivar Jacobson, The Unified Modeling Language User Guide, Menlo Park, Ca: Addison Wesley Longman, Inc., 1999
|Copyright ©1998-2004 GetObjects.com All Rights Reserved