OBJECT ORIENTED PROGRAMMING What is Object Oriented Software

  • Slides: 33
Download presentation
OBJECT ORIENTED PROGRAMMING

OBJECT ORIENTED PROGRAMMING

What is Object Oriented Software? • Software based on the creation of objects •

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

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

POINTS OF DISCUSSION • • Object Message Event Class Property Inheritance Data Abstraction and Encapsulation

INTRODUCTION • “Object Oriented Programming models realworld objects with software counterparts”, H. M. Deitel

INTRODUCTION • “Object Oriented Programming models realworld 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,

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

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

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

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

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

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

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

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

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

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

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

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;

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 from. String: ‘Mary Jones’. b: =List from. String: ‘Suzy

A SIMPLE EXAMPLE a: =List from. String: ‘Mary Jones’. b: =List from. String: ‘Suzy Smith’. C: =a+b. Output: ‘Mary Jones, Suzy Smith’

A SIMPLE EXAMPLE The first two lines of code simply create List objects a

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 almost two dozen of them today! The leading

OBJECT ORIENTED LANGUAGES • • There 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

C++ - OBJECT ORIENTED LANGUAGE C++ is compatible with C (superset of C), so that existing code can be incorporated into 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

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

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

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 - 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

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

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 • Power. Builder is an object oriented application tool

Powerbuilder - OBJECT ORIENTED LANGUAGE • Power. Builder 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

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

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

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

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.