OBJECT ORIENTED PROGRAMMING

advertisement

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.

Download