Sie sind auf Seite 1von 46

Lecture slides by:

A new paradigm of programming

Inayat-ur-Rehman

After

this lecture, you should be able to

Understand the meaning of object Know the difference between an object and a class Know the concepts of object orientation Understand how objects communicate

History

of Object Oriented Why OO is chose? Object Oriented vs Structured Characteristics of OO What is Object Oriented Programming (OOP) OOP Advantages

OOPS

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

Unstructured

Programming Procedural Programming Modular & Structural Programming Abstract Data Type Object-Oriented Programming

Usually,

people start learning programming by writing small and simple programs consisting only of one main Main Program program. Here ``main Data program'' stands for a sequence of commands or statements which modify data which is global throughout the whole program.

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

With

procedural programming, you are able to combine sequences of calling statements into one single place. 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 .

Main Program

Procedure

Programs

can now be written more structured and error free. For example, if a procedure is correct, every time it is used it produces correct results. 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 procedure calls. 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.

Main Program

Data
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 program.

Main Program(Also a module)


Data

Data

Module1 + Data Data 11

Module2 + 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 module. Each module has its own special functionalities that supports the implementation of the whole program.

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

Build programming using software objects. Means that we organize software as a collection of discrete (different) objects that incorporate both data structure and behavior. In OOP, the software objects correspond closely to real objects involve in the application area.

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,

law system A cultural system An educational system An economic system An Information system A computer system

University

is developed by the interactions

among:

students professors staffs officers of Bio-science officers of CIIT ...

ADTs allows the creation of instances with welldefined 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 a problem. Therefore instances (objects) of ADTs (classes) are dynamically created, destroyed and used.

Object1
Data1+Procedures1

Object2 Data Data2 + Procedures Data 21

Object3 Data3 + Procedures3

Object4

Data4 + Procedures4

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 C#:

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

one component instead of many exercise component from many different aspects

Promote

no

need to remember to correct the same error twice

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.

Flexibility Very flexible in accommodating different situations because the interaction patterns among the object can be changed without modifying the object. Maintainability Objects can be maintained separately. Reusability Objects can be reused in the different programs.

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. Example:
Importance of data in inventory system, banking system etc. 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.

Classes
Objects Data

encapsulation Inheritance Polymorphism

Class A generic definition for a set of similar objects. Provides the specifications for the objects behaviors and attributes. An abstraction of a real world entity.

The key concepts are: Object Directly relate to the real world entities. Can be a person, thing or concept. Like a black box, therefore all the implementation is hidden. Has a
State (attribute) Behavior (operation) 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 class.

Object vs Class
Diagram 1: Class Car
Car Door Seat Type Model

Diagram 2: MyCar as an Object

Drive Stop Lock Unlock


Messages Requests for the receiver objects to carry out the indicated method or behavior and return the result of that action to the sender objects

Encapsulation Process of hiding the implementation details of an object. Access to manipulate the object data is through its interface (operations/ functions). Protects an objects internal state from being corrupted by other programs.

Encapsulation (cont) 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 boxes.

Inheritance 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 classes. Provides a more flexible and adaptable system and enables polymorphism.

Polymorphism Means having many forms. Provides the ability to use a single message to invoke many different kinds of behavior. 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 sees. 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 relationships

OOP

by Robert Lafore OOP by Deitel and Deitel Haibin Zhu, Ph. D. Associate Professor of CS, Nipissing University Complete Reference

Das könnte Ihnen auch gefallen