Download OBJECT ORIENTED PROGRAMMING

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts
no text concepts found
Transcript
OBJECT ORIENTED
PROGRAMMING
What is Object Oriented Software?
• Software based on the creation of objects
• An object is a “black box” which receives
and sends messages
• A black box contains code and data, which
are merged into a single indivisible object
• As a user - Do not peek into the box!
Why is it so famous?
• Offers a new and powerful model for
writing computer software
• Improves maintenance, reusability and
modifiability
• Improves principles of modularity and
information hiding.
POINTS OF DISCUSSION
•
•
•
•
•
•
•
Object
Message
Event
Class
Property
Inheritance
Data Abstraction and
Encapsulation
INTRODUCTION
• “Object Oriented Programming models
real-world objects with software
counterparts”, H.M.Deitel & P.J.Deitel
• It is a type of programming where a
programmer defines both data types and
functions of a data structure.
What is an Object?
• OOP encapsulates data and functions into
packages called objects, that are intimately
tied together.
• Objects are individual instances of a class.
So, what is a class?
• It determines everything about an object.
• Spot is an object created from class Dog.
• A method is simply the action that a
message carries out.
• The Dog class defines messages that the
Dog objects can understand, like “bark” and
“fetch”.
Message
• Messages define the interface to the object
• All communication to the object is done via
the messages
• Objects do not ordinarily perform their
behavior spontaneously, rather a specific
behavior is invoked when a message is sent.
PROPERTY AND EVENTS
• An event is a signal for the object to
perform its function
• Properties are defined characteristics of the
object
PROPERTIES
• Take advantage of class relationships,
where objects of a certain class have the
same characteristics
• Provide a more natural and intuitive way of
viewing the program’s progress
• Encapsulate data and functions into objects
INHERITANCE
Inheritance is a form of software reusability
in which new classes are created from
existing classes by the absorption of
attributes and behaviors, embellishing these
with capabilities the new class requires.
INHERITANCE
• In any good Object Oriented language, the
programmer creates a subclass of the original
class. This new class inherits all the existing
messages, and therefore, all the behavior of the
original class.
• The original class is called the parent class or
Super class, of the new class.
• A subclass is said to be a specialization of its super
class, and conversely, a super class a
generalization of its subclass.
INHERITANCE
• Promotes reuse
• Programmers don’t start from the scratch when
they write a new program. They reuse an existing
repertoire of classes that have behaviors similar to
what is required in the new program.
• For example, after creating the class Dog, you
might create a subclass called Wolf, which defines
some wolf specific messages such as hunt.
INHERITANCE
• It is more sensible to define a common class called
Canine, of which both Dog and Wolf are sub
classes
• Much of the art of OOP is determining the best
way to divide a program into an economical set of
classes.
• In addition to speeding development time, proper
class construction and reuse results in far fewer
lines of code, which translates to less bugs, and
lower maintenance costs.
DATA ABSTRACTION
• Loosely defined category
of objects that can be
manipulated and used in a
variety of different
programs.
DATA ENCAPSUALTION
Providing access to an
object only through its
messages, while keeping
the details private
A SIMPLE EXAMPLE
Suppose, you wanted a data type called list(list of
names)
Struct list{
<definition of list structure here>
};
List a, b, c;
a = “Mary Jones”;
b = “Suzy Smith”;
A SIMPLE EXAMPLE
In C, adding the integers a and b
produces an error; the language
doesn’t know what to do with a
and b because they are not
numeric entities. They are
strings –
A SIMPLE EXAMPLE
a:=List fromString: ‘Mary Jones’.
b:=List fromString: ‘Suzy Smith’.
C:=a+b.
Output:
‘Mary Jones, Suzy Smith’
A SIMPLE EXAMPLE
The first two lines of code simply create List
objects a and b from the two strings. This now
works, because the list class was created with a
method which specifically “knows” how to handle
the message “+”. Hence, C will have the new
value of a combination of the argument with its
own object by striking them together with a
comma separating them.
‘Mary Jones, Suzy Smith’
OBJECT ORIENTED LANGUAGES
•
•
•
•
•
•
•
There are almost two dozen of them today!
The leading commercial OOL’s are:
C++
Smalltalk
Java
C++ is an OO version of C
Smalltalk is significantly faster to develop than
C++
• Java is the latest, flashiest OO language
C++ - OBJECT ORIENTED
LANGUAGE
C++ is compatible with C (superset of C),
so that existing code can be incorporated
into C++ programs. C++ programs are fast
and efficient, qualities which helped make
C an extremely popular programming
language. It sacrifices certain flexibility in
order to remain efficient
C++ - OBJECT ORIENTED
LANGUAGE
• C++ uses compile-time binding, which
means the programmer must specify the
specific class of an object, which makes for
high run-time efficiency and small code
size, but it trades off some of the power to
reuse the classes.
• C++ has become so popular that most new
compilers are C/C++ compilers.
C++ - OBJECT ORIENTED
LANGUAGE
• However, in order to take full advantage of
OOP, one must program in C++, not C.
• This often can be a major problem for C
programmers.
• Many programmers think they are coding in
C++, but instead are only using a small part
of the language’s object oriented power!
Smalltalk - OBJECT ORIENTED
LANGUAGE
• C++ makes some practical compromises to
ensure fast execution and small code size,
Smalltalk makes none.
• It uses run-time binding, which means that
nothing about the type of an object need be
known before a Smalltalk program is run.
• Smalltalk has a rich class library that can be
easily reused via inheritance.
Smalltalk - OBJECT ORIENTED
LANGUAGE
• It also has a dynamic development
environment
• Smalltalk is not explicitly compiled, like
C++
• It is syntactically very simple, much more
so than either C or C++.
Java - OBJECT ORIENTED
LANGUAGE
• Java is designed as a portable language that
can run on any web-enabled computer via
that computer’s web browser. As such, it
offers great promise as the standard internet
and intranet programming language.
• Java is a mixture of C++ and Smalltalk!
• It has no pointers, low-level programming
constructs that make error-prone programs.
Java - OBJECT ORIENTED
LANGUAGE
• Like Smalltalk, Java has garbage collection,
a feature that frees the programmer from
explicitly allocating and de-allocating
memory.
• It runs on a Smalltalk-style virtual machine,
software built into web browser which
executes the same standard compiled Java
byte codes irrespective of the computer
used.
Powerbuilder - OBJECT ORIENTED
LANGUAGE
• PowerBuilder is an object oriented
application tool that allows to build
powerful, multitier applications to run on
multiple platforms and to interact with
various databases.
• Each menu or window you create is an
object.
• Each object contains properties, events and
functions.
SUMMARY
• An object is a bundle of variables and
related methods
• A method is an operation which can modify
an object’s behavior.
• A Class is a blueprint of an object.
• When defining a Class, you must consider
any possible sub class.
CONCLUSION
Major advantages of OOP are
• It can address the problems that increasing
size and complexity cause
• Produce more complete and understandable
specifications and designs by using all
major types of data abstraction
• This approach speeds up the development
of new programs, improves maintenance
and reusability.
CONCLUSION
However, OOP requires a major shift in
thinking by programmers.
The C++ offers an easier transition via C, but it
still requires an OO design approach.
Java promises much for web-enabling OO
programs.
Smalltalk offers a pure OO environment.
BIBLIOGRAPHY
• C++ How to Program - Deitel & Deitel
• Object Oriented Analysis - David Brown
• Object Oriented Analysis and Design with
applications - Grady Booch
• What is Object-Oriented Software? An
article by Terry Montlick
• Design, Implementation and Management Peter Rob Carlos Coronel.