Lecture slides by:
A new paradigm Farhan Amjad
After this lecture, you should be able to
Difference of OO technique by other techniques
Understand the meaning of object
Know the difference between an object and a
Know the concepts of object orientation
Understand how objects communicate
Applicablerules and submission deadlines will
be indicated with the assignments
10-15 minutes duration
Will cover reading assignments and
material covered in the class
Supervised Lab Sessions and Tutorials will be
organized as and when required.
I will ask questions very often
So be attentive
Actually, programming is not so
easy, because a real good program is not
easily programmed. It needs the
programmers’ lots of wisdom, lots of
knowledge about programming and lots of
It is like writing, to be a good writer needs
lots of experience and lots of knowledge
about the world.
Learning and practice are necessary.
Usually,people start learning
programming by writing small
and simple programs
consisting only of one main Main Program
program. Here ``main
program'' stands for a Data
sequence of commands or
statements which modify data
which is global throughout the
This programming technique can only be used in
a very small program.
For example, if the same statement sequence is
needed at different locations within the
program, the sequence must be copied. If an
error needed to be modified, every copy needs
to be modified.
This has lead to the idea to extract these
sequences(procedure), name them and offering
a technique to call and return from these
With procedural programming, Main
you are able to combine Program
sequences of calling
statements into one single
A procedure call is used to
invoke the procedure. After
the sequence is processed,
flow of control proceeds right
after the position where the
call was made .
Programs can now be written more
structured and error free.
For example, if a procedure is
correct, every time it is used it produces
Consequently, in cases of errors you can
narrow your search to those places which
are not proven to be correct.
Now a program can be viewed as a sequence of
The main program is responsible to pass data to
the individual calls, the data is processed by the
procedures and the resulting data is presented.
Thus, the flow of data can be illustrated as a
hierarchical graph, a tree.
Procedure1 Procedure2 Procedure3
Modular programming is subdividing your
program into separate subprograms such as
functions and subroutines.
With modular programming, procedures of a
common functionality are grouped together
into separate modules.
A program therefore no longer consists of
only one single part. It is now divided into
several smaller parts which interact through
procedure calls and which form the whole
Main Program(Also a module)
Data Data Data2
Procedure1 Procedure2 Procedure3
The main program coordinates calls to procedures in separate modules and
hands over appropriate data as parameters.
Each module can have its own data. This allows
each module to manage an internal state which
is modified by calls to procedures of this
Each module has its own special functionalities
that supports the implementation of the whole
Also structured programming
A subset of procedural programming that
enforces a logical structure on the program
being written to make it more efficient and
easier to understand and modify.
Certain languages such as Ada, Pascal, and
dBASE are designed with features that
encourage or enforce a logical program
Global Data Global Data Global Data
Function Function Function Function
When the program grows larger and more
complex even the structural programming
shows the strain.
You may have heard horror stories of project’s
complexity, schedule slipping etc.
In procedural programming data is given
second class status.
Inventory system-> new programmer->writes the function
It is same like you are sitting in your lobby and
left there your personal documents.
It is a kind of thinking methodology
Everything in the world is an object;
Any system is composed of objects (certainly a system is
also an object);
The evolution and development of a system is caused by
the interactions among the objects inside or outside the
Build programming using software objects.
Means that we organize software as a
collection of discrete (different) objects
that incorporate both data structure and
In OOP, the software objects correspond
closely to real objects involve in the
A flower, a tree, an animal
A student, a professor
A desk, a chair, a classroom, a building
A university, a city, a country
The world, the universe
A subject such as CS, IS, Math, History, …
A law system
A cultural system
An educational system
An economic system
An Information system
A computer system
University is developed by the interactions
officers of Bio-science
officers of CIIT
ADTs allows the creation of instances with well-defined
properties and behavior.
In object-orientation, ADTs are referred to as classes.
Therefore, a class defines properties of objects which
are the instances in an object-oriented environment.
Object-oriented programming is ``programming with
ADTs'': combining functionality of different ADTs to solve
Therefore instances (objects) of ADTs (classes) are
dynamically created, destroyed and used.
An object-based programming language is one
which easily supports object-orientation.
Smalltalk:1972-1980, Alan Kay
C++:1986, Bjarne Stroustrup
Java:1992 (Smalltalk + C++), James Gosling
Developed at Microsoft by Anders Hejlsberg et al, 2000
Event driven, object oriented, visual programming
language (C++ and Java)
◆ Complexity & Haste:
Skilled programmer: 10-15 lines of code a day
Price ~ $18/line
Can you pay this? If not, what will you do?
Hire non professionals?
◆ OOP fights Complexity:
A more realistic model of the world
Collection of interacting objects instead of a
collection of functions
Reuse of ready made components
Reduce development cost:
one component instead of many
exercise component from many different aspects
noneed to remember to correct the same
INFO TECH RESEARCH FUNDING
The Clinton Administration has targeted 5
technology areas for support from the National
Institute of Standards & Technology, and two
focus directly on information technology: a
nationwide health care information infrastructure
and an effort to develop reusable software
components for large software systems.
[Wall Street Journal, 26 April ‘94, Page B6]
Reuse is tightly coupled with abstraction:
● Identify similarity between elements.
● Create a component that represents the similar parts.
● Rewrite elements to use the common part.
Adding new features responding to changing
operation environment can be a matter of
introducing a few new objects.
Easy to make minor changes in the data
representation/ the procedures used in an OO
program. Changes within an object do not affect
any other parts of the program.
Very flexible in accommodating different
situations because the interaction patterns
among the object can be changed without
modifying the object.
Objects can be maintained separately.
Objects can be reused in the different
Data is more important then
functions, methods, procedures etc but in
procedural languages data is given the
second class status. OOP also provides the
mechanism to hide the data.
Importance of data in inventory system, banking
You hire a new programmer and he accidently
changes the corrupts the data. Same like
someone changes your personal data.
Reduces complexity much like the detailed
workings of an automobile are hidden from
the average driver.
Principle of least privilege (need-to-know)
More Secure. Less likely that someone will
alter or misuse something.
Easier to change the implementation without
affecting other modules that use it.
A generic definition for a set of similar
Provides the specifications for the
objects’ behaviors and attributes.
An abstraction of a real world entity.
The key concepts are:
Directly relate to the real world entities.
Can be a person, thing or concept.
Like a “black box”, therefore all the
implementation is hidden.
Identity (unique name)
Object vs Class
object is created from a class.
object is considered as an instance of a class.
class is considered as a template from which
objects are instantiated
can create an object or many objects from a
Object vs Class
Diagram 1: Class Car Diagram 2: MyCar as an Object
Requests for the receiver objects to carry
out the indicated method or behavior and
return the result of that action to the
Process of hiding the implementation
details of an object.
Access to manipulate the object data is
through its interface (operations/
Protects an object’s internal state from
being corrupted by other programs.
Program maintenance is easier and less
expensive because changes in the
object data or implementation is only
modified in one place
Allows objects to be viewed as black
Code reuse mechanism to build new
objects out of old ones.
Defines a relationship among classes
where one class shares the structure
and/or behavior on one or more
Provides a more flexible and adaptable
system and enables polymorphism.
Means having many forms.
Provides the ability to use a single
message to invoke many different kinds
Same name with different meaning.
Protected levels in a class:
Public: Can be accessed both within and external
to the object.
Private: Can only be used by the object itself.
The public section of a class is usually called
the interface. It is what the programmers
Normally, All data is private and only the
bare essential functions are made public.
What is Object Oriented Programming?
Object-oriented programming is a method
of implementation in which programs are
organized as cooperative collections of
objects, each of which represents an
instance of some class, and whose classes
are all members of one or more hierarchy
of classes united via inheritance
OOP by Robert Lafore
OOP by Deitel and Deitel
Haibin Zhu, Ph. D. Associate Professor of CS,