Title: OBJECT-ORIENTED CONCEPTS
1OBJECT-ORIENTED CONCEPTS
2What is an object?
- An object is a software entity that mirrors the
real world in some way. - A software object in OOP has data (the
attributes) and code that responds to
instructions. Think of the code and data as
being welded together --the code completely
wrapping the data in a shell to protect it from
the hostile outside world." Franz
3What is an object?(Continued)
- An object has state, behavior, and identity
Booch 91 - An object is an encapsulation of state (data
values) and behavior (operations). Thus an
object is in many ways similar to a module, or an
abstract data type." Budd
4Procedural languages vs Object-oriented
languages?
- Procedural languages (Pascal, C, Fortran, etc.)
operate on data a step at a time. A program
written in one of these languages has two
components - data (variables and records)
- code (instructions that act on the data and do
the work). - There is a rigid separation of code from data.
5PRO-Lang vs OO-Lang (Continued)
- An object-oriented language breaks a program into
hundreds of tiny entities that have small bits of
code and data fused tightly together. Where
subroutines are a convenience in a procedural
language, the separateness of these entities is
essential to an object-oriented program.
6OBJECT-ORIENTATION - A NEW PARADIGM
- Object-oriented programming is a new programming
paradigm (a new way of viewing the world). - The underlying ideas of the object-oriented
technique are the same basic methods humans use
to solve problems in the world (e.g.,
abstraction).
7OO A NEW PARADIGM (Continued)
- Computer novices and children grasp the ideas of
OOP easier than computer professionals. The
professionals require a paradigm shift which is
very difficult (due to preconceived notions)
whereas the children don't.
8TERMS
- Object A software entity that mirrors the real
world in some way. Everything in an
object-oriented programming language is an
object. - Class A class is a template from which objects
are created (i.e., a blueprint for the objects
it defines). Every object made from a class is
the same as every other.
9TERMS(Continued)
- Instance Instances are the individual objects
created by a class. Every object is an instance
of a class. - Related Term
- Instantiation Creating a new (specific) object
from a general class is called instantiation.
10TERMS(Continued)
- Method The behavior of a class, and all its
instances, is described by a method. - Methods are like procedures
- They execute step-by-step,
- Can do branching and looping,
- Take arguments,
- Have local variables,
- Return values (objects).
11TERMS(Continued)
- Methods are unlike procedures
- they may only access data of the class for which
they are defined, an instance's data can only be
accessed through its class' method. - Note A class' methods completely encapsulate
the data of objects of the class for which they
are defined.
12TERMS(Continued)
- Message A request to a specific instance,
called the receiver, to invoke a specific method.
Along with the name of the method, (the
selector) additional information (arguments,
i.e., objects) can be passed as part of the
message.
13TERMS(Continued)
- When the object receives the message, it invokes
the method for the selector. This can - (1) change the object's instance variables,
- (2) send another object back as a direct
response to the message, - (3) do something in the real world of the
computer, such as display information, print a
message, or read a block of data from a file. - Much of the code within methods consists of
passing messages to other objects.
14TERMS(Continued)
- Abstraction A problem solving tool that allows
one to think of a problem at a higher level
without worrying about the details. - Abstraction refers to organizing information
based on three abstraction mechanisms
classification, generalization, and aggregation.
15ABSTRACTION MECHANISMS(Continued)
- Classification forms new objects by suppressing
the details of individual instances and
emphasizing properties of the whole. New object
types (classes) are formed by collecting
instances. - Classification set theoretic operation
'membership' -
- gt describes the 'instance-of'
relationship
16ABSTRACTION MECHANISMS(Continued)
- EX Classification would allow one to collect
the instances 'Jane, Bob, Sue' into a new
higher-order type called 'secretary.'
17ABSTRACTION MECHANISMS(Continued)
- Generalization merges existing types to form new
types. Individual differences between subtypes
are ignored and common traits are emphasized. - Generalization set theoretic operation
'union' - gt describes the 'is-a relationship
18ABSTRACTION MECHANISMS(Continued)
- EX Existing employee types 'secretary', and
'teacher' can be generalized to form the new type
'employee'. -
19ABSTRACTION MECHANISMS(Continued)
- Generalization implies that every instance of the
subtype is an instance of the type. Every
instance of 'teacher' is also an instance of
'employee'
20 ABSTRACTION MECHANISMS(Continued)
- Aggregation forms an object as a relationship
among other objects. It suppresses the details of
the components and emphasizes the details of the
relationship as a whole. - Aggregation set theoretic operation
'cartesian product' - gt describes the 'is-part-of relationship
21ABSTRACTION MECHANISMS(Continued)
- EX Consider object types 'stove',
'refrigerator', 'sink', 'cabinet'. A 'kitchen'
object can be abstracted from the given objects.
The individual objects (e.g., 'stove') are
components of the aggregate ('kitchen'). -
22ABSTRACTION MECHANISMS(Continued)
- An instance of a component is said to be an
attribute of an instance of the aggregate.
23ABSTRACTION MECHANISMS(Continued)
- Classification, generalization, and aggregation
are the basic ways we have of structuring
information. When they are repeatedly applied to
objects, hierarchies of new objects are formed.
24TERMS(Continued)
- Information hiding as defined by Parnas Par72
suggests decomposing systems into components that
hide or encapsulate design decisions about
abstractions. - Data abstraction refers to defining data types in
terms of the operations that apply to objects of
the type, with the constraint that the values of
such objects can be modified and observed only by
the use of the operations Oxf86.
25TERMS(Continued)
- Data abstraction is thinking in terms of what you
can do to a collection of data independently of
how you do it. - Related term
- Abstract data type (ADT) is a collection of data
structured in a particular fashion together with
a set of operations that manipulate the data.
26TERMS(Continued)
- Inheritance The principle of receiving
properties or characteristics from an ancestor
and is used to define new data types as
extensions or restrictions of existing types. - Polymorphism and dynamic binding Program
entities should be permitted to refer to objects
of more than one class, and operations should be
permitted to have different realizations in
different classes.
27TERMS(Continued)
- Polymorphism refers to the situation whereby a
given program entity may refer at run-time to
instances of different classes. - Dynamic binding refers to the situation whereby
the run-time system will automatically select the
version of an operation adapted to the
corresponding instance.
28TERMS(Continued)
- Multiple and repeated inheritance It should be
possible to declare a class as heir to more than
one class, and more than once to the same class.