Object Oriented (OO) Terminology/Definitions
- Class: Pattern or blueprint for creating an object. A class contains all
attributes and behaviors that describe or make up the object.
- Object: A thing that can be seen and touched (and manipulated). It is an
instance of a class.
In a bit more detail, a (software) object is a construct that combines a state (data) and
behavior (operations). When combined, the state and the behavior represent an abstraction of a
"real-world" object. See example here.
- Attributes: Characteristics that describe the object (sometimes referred to as properties).
- Methods: Operations (or actions) that objects perform or operations which are performed to an
object. Sometimes referred to as behaviors.
- Instance: An object created from a class (is an instance of that class).
- Abstraction: Refers to hiding the internal details of an object from
the user.
- Encapsulation: Refers to the combining of an object's attributes and
behaviors into a single package, i.e. a class. The programmer then can then access the
methods and properties of the class without having to understand the implementation.
- Inheritance: Refers to the capability of creating a new class from
an existing class.
- Base Class: An originally created class, along with its attributes and
behaviors. A class from which another class inherits its attributes and behaviors.
- Derived Class: A newly created class, derived from a base class
which inherits all of the attributes and behaviors from the base class, but may have addtional
attributes and behaviors associated with it.
Note: This list of definitions is intended to be as generic (language/vendor/platform independent) as possible.
Note also that this is not an exhaustive list of OO terms and definitions, nor is it the most
detailed definition of each. It is provided as an introduction to object oriented concepts for
introductory programming languages.