Beruflich Dokumente
Kultur Dokumente
Inayat-ur-Rehman
After
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.
Data
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
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
among:
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
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#:
Event driven, object oriented, visual programming language (C++ and Java)
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?
A more realistic model of the world Collection of interacting objects instead of a collection of functions Reuse of ready made components
Reduce
one component instead of many exercise component from many different aspects
Promote
no
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
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
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