OBJECT ORIENTED PROGRAMMING L ECTURE 2 INSTRUCTOR: Rashi Garg COORDINATOR: Gaurav Saxena.

Post on 19-Jan-2016

221 views 0 download

Tags:

Transcript of OBJECT ORIENTED PROGRAMMING L ECTURE 2 INSTRUCTOR: Rashi Garg COORDINATOR: Gaurav Saxena.

OBJECT ORIENTED PROGRAMMINGLECTURE 2

INSTRUCTOR: Rashi Garg

COORDINATOR: Gaurav Saxena

EVALUATION STRATEGY

Examination T-1 T-2 End Sem Exam

Percentage of marks 20 20 35

Duration in Hours 1 1 2

Syllabi Coverage:

(i) T-1(Mid Term) Syllabi covered up-to T-1.

(ii) T-2: (Mid Term) Syllabi covered between T-1 & T-2.

(iii) End Semester Exam Full Syllabi

Teachers Assessment

Assignments, Tutorials, 25% EntireSemester

Quizzes, home work &

Regularity in attendance

REFERENCE MATERIAL Reference Books: Michael R Blaha, James Rumbaugh, "Object Oriented

Modeling and Design with UML", Pearson.  James Rumbaugh et. al, “Object Oriented Modeling and

Design”, PHI Grady Booch, James Rumbaugh, Ivar Jacobson, “The

Unified Modeling Language UserGuide”, Pearson Education

Naughton, Schildt, “The Complete Reference JAVA2”, TMH Mark Priestley “Practical Object-Oriented Design with

UML”, TMH Booch, Maksimchuk, Engle, Young, Conallen and Houstan,

“Object Oriented Analysisand Design with Applicile ations”, Pearson Education

Pandey, Tiwari, “ Object Oriented Programming with JAVA” , Acme Learning

INTRODUCTION

C++ programming language was developed by AT&T Bell Laboratories.

Simula 67 was earliest Object Oriented Language.

Paradigm means organizing principle of a program. It is an approach to programming.

PROGRAMMING PARADIGMS

Procedural Programming Modular Programming Object Oriented Programming

PROCEDURAL PROGRAMMING

Example: COBOL, FORTRAN, BASIC List of instructions where each statement

tells computer to do something. Focus is on processing Algorithm need to perform desired

computation Decide which procedure you want use best

algorithm you find Emphasis is on doing things But what happens to DATA ? IMP PART OF INVENTORY IS DATA NOT THE

FUNCTION TO CHECK OR DISPLAY DATA.

PROCEDURAL PROGRAMMING CONTD…

Data types are used and worked upon by many functions.

If function makes changes to the data type, this change need to be propagated to all function that uses this data type

This is very time consuming. Does not model real world: vehicle is an

object which is capable of moving Procedural programming concerned about

the procedure (or doing things) i.e moving part not the vehicle

LIMITATION

Emphasis on algorithm (or procedure) rather than on Data.

Change in data type being processed needs to be propagated to all functions.

Does not Model real world

MODULAR/ STRUCTURED PROGRAMMING

Example: C Aimed at improving the clarity, quality, and

development time of programs Make extensive use of subroutines,

block structures and for and while loops

OBJECT ORIENTED PROGRAMMING

Example: C++, c#, Java, Smalltalk Views problem in terms of objects involved

rather than procedure for doing it. OBJECT: identifiable entity with some

characteristics and behaviour EXAMPLE: “Orange is an object”

CHARACTERISTICS: spherical shaped, colour is orange

BEHAVIOUR: juicy/ citrus, tastes sweet/ sour CHARACTERISTICS DATA BEHAVIOUR FUNCTION

WHAT IS AN OBJECT ?

Informally, an object represents an entity, either physical, conceptual, or software.

Physical entity

Conceptual entity

Software Entity

Truck

Chemical Process

Linked List

AN OBJECT HAS STATE

The state of an object is one of the possible conditions in which an object may exist.

The state of an object normally changes over time.

State is represented by attributes and relationships.

AN OBJECT HAS BEHAVIOR

Behavior determines how an object acts and reacts.

The visible behavior of an object is modeled by the set of messages it can respond to (operations the object can perform).

Behavior is represented by operations, methods, and state machines.

AN OBJECT HAS IDENTITY

Each object has a unique identity, even if the state is identical to that of another object.

Professor “J Clark” teaches Biology

Professor “J Clark” teaches Biology

PROCEDURAL VS OOP

• Procedural

Withdraw, deposit, transfer

• Object Oriented

Customer, money, account

Function 1

Function 2

Function 3

Data 1

Data 2

Properties

Properties

Behaviour

Behaviour

Object 1 Object 2

All DATA is openly available to all functions in program

DATA and FUNCTIONS enclosed within objects and new objects communicate with one another

DIFFERENCE BETWEEN PROCEDURE ORIENTED PROGRAMMING (POP) & OBJECT ORIENTED PROGRAMMING

The unit in procedural programming is function, and unit in object-oriented programming is class

Procedural programming concentrates on creating functions, while object-oriented programming starts from isolating the classes, and then look for the methods inside them.

Procedural programming separates the data of the program from the operations that manipulate the data, while object-oriented programming focus on both of them

CONTD ….

CONTD …

WHAT IS A CLASS ???

Class represents a group of objects that share common properties and relationships.

EXAMPLE: Car is an object ? Characteristics : steering wheel, brakes etc. Behavior: Mobility.

But Car is a CLASS “Opel Astra” is a object Car subclass of class AUTOMOBILES

CLASS CONTD…

class class_name {

private data and functionspublic:public data and functions

} object_names;

Where,  class_name is a valid identifier for the class

  object_names is an optional list of names for

objects of this class.

CONTD …

#define SIZE 100// This creates the class stack.class stack {

int stck[SIZE];int tos;public:

void init();void push(int i);int pop();

};

By default members are private

CONTD …

Creating objectstack mystack;

Code a Function

void stack::push(int i){

if(tos==SIZE) {cout << "Stack is full.\n";return;

}stck[tos] = i;tos++;

}

Scope Resolution Operator

CONTD …

When you refer to a member of a class from a piece of code that is not part of the class, you must always do so in conjunction with an object of that class.

Stack stack1. stack2;Stack1.init();

COMPLETE EXAMPLE

#include <iostream>using namespace std;#define SIZE 100// This creates the class stack.

class stack {int stck[SIZE];int tos;public:void init();void push(int i);int pop();};

void stack::init(){

tos = 0;}void stack::push(int i){

if(tos==SIZE) {cout << "Stack is full.\n";

return;}stck[tos] = i;tos++;}int stack::pop(){if(tos==0) {cout << "Stack underflow.\n";return 0;}tos--; reutrn stck[tos];}

int main(){stack stack1, stack2; stack1.init();stack2.init();stack1.push(1);stack2.push(2);stack1.push(3);stack2.push(4);cout << stack1.pop() << " ";cout << stack1.pop() << " ";cout << stack2.pop() << " ";cout << stack2.pop() << "\n";return 0;}

CONTD …

stack1.tos=0 ?

HOW OOP OVERCOMES PROCEDURAL’S PROBLEM

Gives data prime consideration, by providing interface through functions associated with it.

An object is a complete entity: has all data & associated functions within it. In case of change only class gets changed

because it is complete in itself. All function are defined in class, they get to see

change immediately. Just as we replace TRANSISTOR in an equipment. It is a complete part, complete with its component and

interface. Thus can be replaced without altering rest of

machinery

GENERAL CONCEPTS OF OOP

Data Abstraction Data Encapsulation Modularity Inheritance (Hierarchy) Polymorphism

DATA ABSTRACTION

Act of representing essential features without including background details or explanations EXAMPLE: Driving Car

Switch Board

ENCAPSULATION

Wrapping of Data and Functions (that operate on the data) into a single unit (called class).

Only way to access DATA is by FUNCTIONS These are called MEMBER FUNCTIONS Data cannot be accessed directly Data is hidden and safe from accidental

alteration While encapsulating abstraction is implemented Encapsulation is a way to implement Data

Abstraction EXAMPLE: 1 dept cannot access data of other

dept Dept Data and Dept Employee encapsulated into

single entity Dept

INHERITANCE

Capability of one class of things to inherit capabilities or properties from another class

Vehicles

Automobiles

Pulled Vehicles

Bus Car Cart Rickshaw

Base Class

Derived Class

ADVANTAGES OF INHERITANCE

Idea of reusability. Allows addition of additional features to existing class without modifying it

Transitive Nature: A inherits B then all subclasses of A will automatically inherit properties of B

POLYMORPHISM Two or more functions can share the same name

as long as their parameter declarations are different. In this situation, the functions that share the same name are said to be overloaded, and the process is referred to as function overloading.#include <iostream>

using namespace std;// abs is overloaded three waysint abs(int i);double abs(double d);long abs(long l);int main(){cout << abs(-10) << "\n";cout << abs(-11.0) << "\n";cout << abs(-9L) << "\n";return 0;}

int abs(int i){cout << "Using integer abs()\n";return i<0 ? -i : i;}double abs(double d){cout << "Using double abs()\n";return d<0.0 ? -d : d;}

long abs(long l){cout << "Using long abs()\n";return l<0 ? -l : l;}