SlideShare uma empresa Scribd logo
1 de 78
Introduction to Object Oriented Programming 
“The World is Object-Oriented” 
-Alan Kay 
1 
JCa#de 
Moutaz Haddara 
Associate Professor 
Westerdals- Oslo School of Arts, Communication, & Technology
2 
Agenda
Introduction 
– A Brief Programming History 
– OOP 
– Classes & Objects 
3
4 
Computer Programming 
An algorithm is a step-by-step process. 
A computer program is a step-by-step set of 
instructions for a computer. 
Every computer program is an algorithm.
5 
Computer Programming 
The history of computer programming is a 
steady move away from machine-oriented 
views of programming towards concepts and 
metaphors that more closely reflect the way 
in which we ourselves see & understand the 
world
6 
Programming Languages 
• Programming languages allow programmers 
to develop software. 
• The three major families of languages are: 
– Machine languages 
– Assembly languages 
– High-Level languages
7 
Machine Languages 
• Comprised of 1s and 0s 
• The “native” language of a computer 
• Difficult to program – one misplaced 1 or 0 
will cause the program to fail. 
• Example of code: 
1110100010101 111010101110 
10111010110100 10100011110111
8 
Assembly Languages 
• Assembly languages are a step towards easier 
programming. 
• Assembly languages are comprised of a set of 
elemental commands which are tied to a 
specific processor. 
• Assembly language code needs to be translated 
to machine language before the computer 
processes it. 
• Example: 
ADD 1001010, 1011010
9 
High-Level Languages 
• High-level languages represent a giant leap 
towards easier programming. 
• The syntax of HL languages is similar to English. 
• Example: 
grossPay = basePay + overTimePay 
• Interpreter – Executes high level language programs without compilation. 
• Historically, we divide HL languages into two 
groups: 
– Procedural languages 
– Object-Oriented languages (OOP)
10 
Procedural Languages 
• Early high-level languages are typically called 
procedural languages. 
• Procedural languages are characterized by 
sequential sets of linear commands. The focus 
of such languages is on structure. 
• Examples include C, COBOL, Fortran, LISP, 
Perl, HTML, VBScript
11 
Object-Oriented Languages 
• The focus of OOP languages is not on structure, 
but on modeling data. 
• Programmers code using “blueprints” of data 
models called classes. 
• Examples of OOP languages include C++, 
Visual Basic.NET and Java.
12 
Early programming languages 
1950s 1960s 1970s 
Algol68 
Classic C 
Simula 
Pascal 
BCPL 
Lisp 
Fortran 
COBOL 
Algol60 
PL1 
Red==major commercial use 
Blue==will produce important “offspring”
13 
Modern programming languages 
C++ 
Object Pascal 
Java95 
C++98 
Java04 
Ada98 C# 
C++0x 
Lisp Python 
Smalltalk 
Fortran77 
Ada 
Eiffel 
Simula67 
COBOL89 
PHP 
C89 
Pascal 
PERL 
Visual Basic 
COBOL04 Javascript
• Simula is a name for two simulation programming 
languages, Simula I and Simula 67, developed in the 
1960s at the Norwegian Computing Center in Oslo, by 
Ole-Johan Dahl and Kristen Nygaard. 
• Simula is considered the first object-oriented 
14 
programming language. 
• Simula was designed for doing simulations, and the 
needs of that domain provided the framework for many of 
the features of object-oriented languages today.
 Introduction 
– A Brief Programming History 
– OOP 
– Classes & Objects 
15
16 
OOP 
• OOP is mainly a program design philosophy. 
• OOP uses a different set of programming 
languages than old procedural programming 
languages (C, Pascal, etc.). 
• Everything in OOP is grouped as self 
sustainable "objects". Hence, you gain re-usability 
by means of four main object-oriented 
programming concepts.
17 
OOP 
• In OOP programmers define not only the data type of a data 
structure, but also the types of operations/methods 
(functions) that can be applied to the data structure. 
• In this way, the data structure becomes an object that 
includes both data and functions (methods) in one unit. In 
addition, programmers can create relationships between 
one object and another. 
• For example, objects can inherit characteristics from other 
objects.
Object-Oriented Programming Languages 
18 
· Pure OO Languages 
Eiffel, Actor, Emerald, JADE, Obix, Ruby, Python, Scala, 
Smalltalk, Self. 
· Hybrid OO Languages 
Delphi/Object Pascal, C++, Java, C#, VB.NET, Pascal, 
Visual Basic, MATLAB, Fortran, Perl, COBOL 2002, 
PHP, ABAP, Ada 95.
19 
OOP 
Key idea in object-oriented: 
The real world can be “accurately” described as a 
collection of objects that interact.
OOP Basic Terminology 
Object 
- usually a person, place or thing (a noun) 
Method 
- an action performed by an object (a verb) 
Property or attribute 
- Characteristics of certain object. 
Class 
- a category of similar objects (such as automobiles), does 
20 
not hold any values of the object’s attributes/properties
Introduction 
– A Brief Programming History 
– OOP 
– Classes & Objects 
21
22 
Classes and Objects 
• A class is a prototype, idea, and blueprint for 
creating objects. 
• An object is an instance of a class. 
• For example, in Java we define classes, 
which in turn are used to create objects 
• A class has a constructor for creating objects 
• Class is composed of three things: its name, 
attributes/properties, and methods.
23 
Classes (objects) 
Objects: 
Instances of the class 
Methods: 
Functions of class 
Class 
Instance Properties: 
Belong to the object 
Class Properties: 
Belong to the class
24 
Classes & Objects 
A class is a definition of 
objects with the same 
properties and the same 
methods.
25 
Classes Example
26 
Almost everything in the world can be 
represented as an object 
• A 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, … 
• An information system, financial, legal, etc..
27 
What Is an Object, again? 
An object is an instance of a class
More about objects 
• Informally, an object represents an entity, either 
28 
physical, conceptual, or software. 
– Physical entity 
– Conceptual entity 
– Software entity 
Truck 
Chemical 
Process 
Linked List
More formal definition of an “Object” 
29 
An object is a computational entity that: 
1. Encapsulates some state 
2. Is able to perform actions, or methods, on 
this state 
3. Communicates with other objects via 
message passing
30 
Classes & Objects 
Class 
PROPERTY 
Attribute or state 
METHOD 
Do something: 
function & procedure 
CAR 
PROPERTY 
Plate no: 
Color: 
Manufacturer: 
Model: 
Gear type: 
METHOD 
Moves forward 
Moves backward 
Moves right 
Moves left 
Stops 
“X” CAR 
AD47483 
Blue 
Mercedes 
CLK 
Automatic
31 
Classes & Objects 
Time 
hour 
minute 
void addMinutes( int m ) 
inTime 
Attributes: 
hour = 8 
minute = 30 
Methods: 
void addMinutes(int m) 
outTime 
Attributes: 
hour = 17 
minute = 35 
Methods: 
void addMinutes(int m) 
class 
objects
32 
Class/Object 
Each copy of an 
object from a 
particular class is 
called an instance 
of the class.
33 
Class/Object 
The act of creating a 
new instance of an 
class is called 
instantiation.
34 
In short… 
• An Object is a Class when it comes alive! 
• Homo Sapien is a class, John and Jack are 
objects 
• Animal is a class “Snowball” the cat is an object 
• Vehicle is a class My neighbor's BMW is an 
object 
• Galaxy is a class, the MilkyWay is an object
35 
Technical contrast between Objects & Classes 
CLASS OBJECT 
Class is a data type Object is an instance of Class. 
It generates OBJECTS It gives life to CLASS 
Does not occupy memory 
location 
It occupies memory location. 
It cannot be manipulated 
because it is not available in 
memory (except static class) 
It can be manipulated. 
Object is a class in “runtime”
36 
Objects Need to Collaborate! 
• Objects are useless unless they can 
collaborate together to solve a problem. 
– Each object is responsible for its own 
behavior and status. 
– No one object can carry out every 
responsibility on its own. 
• How do objects interact with each other? 
– They interact through messages.
37 
Object Interaction 
Message 
Object 3 
Object 2 
Object 1 
Property 
Method 
Property 
Method 
Property 
Method
Example of Object Interaction 
• The OrderEntryForm wants Order to calculate the total NOK 
38 
value for the order. 
orderID 
date 
salesTotal 
tax 
shipDate 
calculateOrderTotal() 
Message 
OrderEntryForm Order 
The class Order has the responsibility to calculate the total NOK value.
39 
 OOP Basic Concepts 
– Encapsulation 
– Inheritance 
– Abstraction 
– Polymorphism
40 
Encapsulation
41 
Encapsulation 
• Is the inclusion of property & method within a 
class/object in which it needs to function properly. 
• Also, enables reusability of an instant of an 
already implemented class within a new class 
while hiding & protecting the method and 
properties from the client classes.
42 
Encapsulation 
• The class is kind of a container or capsule or a cell, 
which encapsulate the set of methods, attributes and 
properties to provide its indented functionalities to other 
classes. 
• In that sense, encapsulation also allows a class to 
change its internal implementation without hurting the 
overall functioning of the system. 
• That idea of encapsulation is to hide how a class does its 
operations while allowing requesting its operations.
Example: 
• Let’s say we have a class called “Date” (day, 
month, year). And then you need to define 
another class called “Person” that has the 
following attributes (first name, last name, and 
birthdate). So in this case we can instantiate an 
object from class “Date” inside class “Person”. 
43 
Encapsulation in action
44 
Encapsulation – Benefits 
 Ensures that structural changes remain local: 
 Changing the class internals does not affect any code 
outside of the class 
 Changing methods' implementation 
does not reflect the clients using them 
 Encapsulation allows adding some logic when 
accessing client's data 
 E.g. validation on modifying a property value 
 Hiding implementation details reduces complexity 
 easier maintenance 
44
45 
 OOP Basic Concepts 
– Encapsulation 
– Inheritance 
– Abstraction 
– Polymorphism
46 
Inheritance 
• Inheritance—a way of organizing classes 
• Term comes from inheritance of traits like eye 
color, hair color, and so on. 
• Classes with properties in common can be 
grouped so that their common properties are 
only defined once in parent class. 
• Superclass – inherit its attributes & methods to 
the subclass(es). 
• Subclass – can inherit all its superclass 
attributes & methods besides having its own 
unique attributes & methods.
47 
Inheritance 
• Inheritance allows child classes to inherit the 
characteristics of existing parent class 
• Attributes (fields and properties) 
• Operations (methods) 
• Child class can extend the parent class 
• Add new fields and methods 
• Redefine methods (modify existing behavior) 
• A class can implement an interface by providing 
implementation for all its methods 
47
48 
Inheritance 
• Expresses commonality among 
classes/objects 
• Allows code reusability 
• Highlights relationships 
• Helps in code organization
49 
Inheritance
Derived class Derived class 
50 
Inheritance – Example 
Person 
+Name: String 
+Address: String 
Employee 
+Company: String 
+Salary: double 
Base class 
Student 
+School: String 
50 
+Name: String 
+Address: String 
+Name: String 
+Address: String
51 
An Inheritance Hierarchy 
Vehicle 
Subclasses 
Superclass 
Automobile Motorcycle Bus 
Sedan Sports Car School Bus Luxury Bus
52 
Example: Single Inheritance 
One class inherits from another. 
Account 
- balance 
- name 
- number 
+ withdraw() 
+ createStatement() 
Savings Checking 
Superclass 
(parent) 
Subclasses 
Inheritance 
Relationship 
Ancestor 
Descendents
53 
Example: Multiple Inheritance 
• A class can inherit from several other 
classes. 
FlyingThing Animal 
Multiple Inheritance 
Airplane Helicopter Bird Wolf Horse 
Most modern languages don’t support multiple inheritance!
54 
 OOP Basic Concepts 
–Encapsulation 
– Inheritance 
– Abstraction 
– Polymorphism
55 
Type of Classes 
Concrete Class Abstract Class 
Can be instantiated directly Can’t be instantiated directly
56 
Abstraction 
• Abstraction is a design principle. 
• Is the process of removing characteristics from something in 
order to reduce it to a set of essential characteristics. 
• Through the process of abstraction, a programmer hides all 
but the relevant data about a class in order to reduce 
complexity and increase reusability. 
• Abstraction is a basic representation of a concept.
Abstraction 
• Abstraction allows programmers to represent complex 
57 
real world in the simplest manner. 
• It is a process of identifying the relevant qualities and 
behaviors an object should possess, in other word 
represent the necessary features without representing 
the back ground details 
• You should always use abstraction to ease reusability, 
and understanding for the design and enable extension. 
• When we design the abstract classes, we define the 
framework for later extensions.
58 
Abstraction 
• An abstract class, which declared with the 
“abstract” keyword, cannot be instantiated. 
• It can only be used as a super-class for 
other classes that extend the abstract 
class. Abstract class is a design concept 
and implementation gets completed when 
it is being realized by a subclass.
59 
Abstraction - type of classes 
Person 
DOB: 
Name: 
Address: 
Concrete Class Abstract Class 
Can be instantiated directly Can’t be instantiated directly 
Teacher Student 
DOB: 
Name: 
Address: 
GPA: 
Courses: 
Etc…: 
DOB: 
Name: 
Address: 
Specialization: 
Academic Title: 
Etc…: 
Can be instantiated directly
• An abstract class is a class that may not have any direct 
60 
Abstraction 
Abstract class 
Abstract operation 
Shape 
{abstract} 
draw () {abstract} 
Circle 
draw () 
Rectangle 
draw () 
instances. 
• An abstract operation is an operation that it is 
incomplete and requires a child to supply an 
implementation of the operation.
61 
 OOP Basic Concepts 
– Encapsulation 
– Inheritance 
– Abstraction 
– Polymorphism
• Encapsulation, Inheritance, and 
Abstraction concepts are very related 
to Polymorphism. 
62 
Polymorphism
63 
Polymorphism 
• Polymorphisms is a generic term that means 'many 
shapes'. More precisely Polymorphisms means the 
ability to request that the same methods be performed 
by a wide range of different types of things. 
• In OOP, polymorphisms is a technical issue and 
principle. 
• It is achieved by using many different techniques named 
method overloading, operator overloading, and method 
overriding.
64 
Polymorphism 
• An object has “multiple identities”, based 
on its class inheritance tree 
• It can be used in different ways
Polymorphism 
• In Java, two or more classes could each have a 
65 
method called output 
• Each output method would do the right thing 
for the class that it was in. 
• One output might display a number 
(output.number) in one class, whereas it might 
display a name (output.text) in another class.
66 
Polymorphism 
• It is the ability to look at a class in its 
parent image. 
• Lets see the robot example throughout the 
following few slides
Polymorphism- Abstract class, again!!!! 
• It is a class that you cannot instantiate 
from, however, you use it to dominate and 
specify how the minimum requirements in 
an inherited classes should be. 
public abstract class Robot 
{ 
public virtual abstract void Move() 
// abstract move needs 
} 
67
68 
public class LeggedRobot:Robot 
{ 
public override void Move() 
{ 
// actions of legged robot to move 
} 
}
69 
public class WheeledRobot:Robot 
{ 
public override void Move() 
{ 
// actions of Wheeled robot to move 
} 
}
70 
public void moveRobot(Robot A) 
{ 
A.Move(); 
}
71 
public moveAllRobots() 
{ 
LeggedRobot lr = new LeggedRobot(); 
WheeledRobot wr = new WheeledRobot(); 
moveRobot(lr); 
moveRobot(wr); 
}
72 
Polymorphism 
SBhiarpde 
Void Draw() 
C.Draw() 
T.Draw() 
S.Draw()
73 
Concluding Remarks
74 
Advantages of OOP 
• Code reuse & recycling 
• Improved software-development productivity 
• Improved software maintainability 
• Faster development 
• Lower cost of development 
• Higher-quality software 
• Encapsulation
75 
Disadvantages of OOP 
• Steep learning curve 
• Could lead to larger program sizes 
• Could produce slower programs
76 
OOP Suitability 
• Object oriented programming is good in 
complex projects or modular type of 
systems. It allows simultaneous system 
development teams and also could aid 
in agile system development 
environments like Xtreme Programming.
77 
References 
MIT OpenCourseWare: 
http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-01sc-introduction- 
to-electrical-engineering-and-computer-science-i-spring-2011/unit-1- 
software-engineering/object-oriented-programming 
Larman, C. (2012). Applying UML and Patterns: An Introduction to Object- 
Oriented Analysis and Design and Iterative Development, 3/e. Pearson Education 
India. 
http://docs.oracle.com/javase/tutorial/java/concepts 
http://en.wikipedia.org/wiki/Object-oriented_programming 
https://www.udacity.com/wiki/classes 
https://weblogs.java.net/blog/potty/archive/2014/01/20/introduction-object-oriented- 
programming-oop-part-i 
Lischner, Ray. "Introduction to Object-Oriented Programming." Exploring C++ 11. 
Apress, 2013. 239-244.
78 
Thanks for your attention!

Mais conteúdo relacionado

Mais procurados

Java abstract class & abstract methods
Java abstract class & abstract methodsJava abstract class & abstract methods
Java abstract class & abstract methodsShubham Dwivedi
 
Object and class relationships
Object and class relationshipsObject and class relationships
Object and class relationshipsPooja mittal
 
Fundamentals of OOP (Object Oriented Programming)
Fundamentals of OOP (Object Oriented Programming)Fundamentals of OOP (Object Oriented Programming)
Fundamentals of OOP (Object Oriented Programming)MD Sulaiman
 
OOP Introduction with java programming language
OOP Introduction with java programming languageOOP Introduction with java programming language
OOP Introduction with java programming languageMd.Al-imran Roton
 
Object oriented programming c++
Object oriented programming c++Object oriented programming c++
Object oriented programming c++Ankur Pandey
 
Visula C# Programming Lecture 1
Visula C# Programming Lecture 1Visula C# Programming Lecture 1
Visula C# Programming Lecture 1Abou Bakr Ashraf
 
Oops concepts || Object Oriented Programming Concepts in Java
Oops concepts || Object Oriented Programming Concepts in JavaOops concepts || Object Oriented Programming Concepts in Java
Oops concepts || Object Oriented Programming Concepts in JavaMadishetty Prathibha
 
Introduction to oop
Introduction to oopIntroduction to oop
Introduction to oopcolleges
 
1 unit (oops)
1 unit (oops)1 unit (oops)
1 unit (oops)Jay Patel
 
Introduction to Object-Oriented Programming & Design Principles (TCF 2014)
Introduction to Object-Oriented Programming & Design Principles (TCF 2014)Introduction to Object-Oriented Programming & Design Principles (TCF 2014)
Introduction to Object-Oriented Programming & Design Principles (TCF 2014)Michael Redlich
 
Concepts In Object Oriented Programming Languages
Concepts In Object Oriented Programming LanguagesConcepts In Object Oriented Programming Languages
Concepts In Object Oriented Programming Languagesppd1961
 
Class and object in C++
Class and object in C++Class and object in C++
Class and object in C++rprajat007
 
Abstraction java
Abstraction javaAbstraction java
Abstraction javaMahinImran
 
Need of object oriented programming
Need of object oriented programmingNeed of object oriented programming
Need of object oriented programmingAmar Jukuntla
 

Mais procurados (20)

Java abstract class & abstract methods
Java abstract class & abstract methodsJava abstract class & abstract methods
Java abstract class & abstract methods
 
Object and class relationships
Object and class relationshipsObject and class relationships
Object and class relationships
 
C by balaguruswami - e.balagurusamy
C   by balaguruswami - e.balagurusamyC   by balaguruswami - e.balagurusamy
C by balaguruswami - e.balagurusamy
 
Fundamentals of OOP (Object Oriented Programming)
Fundamentals of OOP (Object Oriented Programming)Fundamentals of OOP (Object Oriented Programming)
Fundamentals of OOP (Object Oriented Programming)
 
OOP Introduction with java programming language
OOP Introduction with java programming languageOOP Introduction with java programming language
OOP Introduction with java programming language
 
Uml class-diagram
Uml class-diagramUml class-diagram
Uml class-diagram
 
Object oriented programming c++
Object oriented programming c++Object oriented programming c++
Object oriented programming c++
 
Visula C# Programming Lecture 1
Visula C# Programming Lecture 1Visula C# Programming Lecture 1
Visula C# Programming Lecture 1
 
Python Functions
Python   FunctionsPython   Functions
Python Functions
 
Oops concepts || Object Oriented Programming Concepts in Java
Oops concepts || Object Oriented Programming Concepts in JavaOops concepts || Object Oriented Programming Concepts in Java
Oops concepts || Object Oriented Programming Concepts in Java
 
Introduction to oop
Introduction to oopIntroduction to oop
Introduction to oop
 
1 unit (oops)
1 unit (oops)1 unit (oops)
1 unit (oops)
 
Introduction to Object-Oriented Programming & Design Principles (TCF 2014)
Introduction to Object-Oriented Programming & Design Principles (TCF 2014)Introduction to Object-Oriented Programming & Design Principles (TCF 2014)
Introduction to Object-Oriented Programming & Design Principles (TCF 2014)
 
C++ Overview PPT
C++ Overview PPTC++ Overview PPT
C++ Overview PPT
 
Concepts In Object Oriented Programming Languages
Concepts In Object Oriented Programming LanguagesConcepts In Object Oriented Programming Languages
Concepts In Object Oriented Programming Languages
 
Class and object in C++
Class and object in C++Class and object in C++
Class and object in C++
 
Abstraction java
Abstraction javaAbstraction java
Abstraction java
 
Introduction to java
Introduction to javaIntroduction to java
Introduction to java
 
Need of object oriented programming
Need of object oriented programmingNeed of object oriented programming
Need of object oriented programming
 
Programming Fundamentals
Programming FundamentalsProgramming Fundamentals
Programming Fundamentals
 

Semelhante a Introduction to Object Oriented Programming

Computer Science ACW Intro to OOP L7.pptx
Computer Science ACW Intro to OOP L7.pptxComputer Science ACW Intro to OOP L7.pptx
Computer Science ACW Intro to OOP L7.pptxEdmondLabule2
 
Object-Oriented Programming (OOP)
Object-Oriented Programming (OOP)Object-Oriented Programming (OOP)
Object-Oriented Programming (OOP)Ahmad karawash
 
Introduction to object oriented programming
Introduction to object oriented programmingIntroduction to object oriented programming
Introduction to object oriented programmingAbzetdin Adamov
 
introduction of Object oriented programming
introduction of Object oriented programmingintroduction of Object oriented programming
introduction of Object oriented programmingRiturajJain8
 
C++ in object oriented programming
C++ in object oriented programmingC++ in object oriented programming
C++ in object oriented programmingSaket Khopkar
 
1. OBJECT ORIENTED PROGRAMMING USING JAVA - OOps Concepts.ppt
1. OBJECT ORIENTED PROGRAMMING USING JAVA - OOps Concepts.ppt1. OBJECT ORIENTED PROGRAMMING USING JAVA - OOps Concepts.ppt
1. OBJECT ORIENTED PROGRAMMING USING JAVA - OOps Concepts.pptsagarjsicg
 
1-Lec - Introduction vhvv,vbvv,v (2).ppt
1-Lec - Introduction vhvv,vbvv,v (2).ppt1-Lec - Introduction vhvv,vbvv,v (2).ppt
1-Lec - Introduction vhvv,vbvv,v (2).pptAqeelAbbas94
 
Teaching Object Oriented Programming Courses by Sandeep K Singh JIIT,Noida
Teaching Object Oriented Programming Courses by Sandeep K Singh JIIT,NoidaTeaching Object Oriented Programming Courses by Sandeep K Singh JIIT,Noida
Teaching Object Oriented Programming Courses by Sandeep K Singh JIIT,NoidaDr. Sandeep Kumar Singh
 

Semelhante a Introduction to Object Oriented Programming (20)

Computer Science ACW Intro to OOP L7.pptx
Computer Science ACW Intro to OOP L7.pptxComputer Science ACW Intro to OOP L7.pptx
Computer Science ACW Intro to OOP L7.pptx
 
OOP Presentation.pptx
OOP Presentation.pptxOOP Presentation.pptx
OOP Presentation.pptx
 
OOP Presentation.pptx
OOP Presentation.pptxOOP Presentation.pptx
OOP Presentation.pptx
 
Object-Oriented Programming (OOP)
Object-Oriented Programming (OOP)Object-Oriented Programming (OOP)
Object-Oriented Programming (OOP)
 
General oop concept
General oop conceptGeneral oop concept
General oop concept
 
Introduction to object oriented programming
Introduction to object oriented programmingIntroduction to object oriented programming
Introduction to object oriented programming
 
introduction of Object oriented programming
introduction of Object oriented programmingintroduction of Object oriented programming
introduction of Object oriented programming
 
Object model
Object modelObject model
Object model
 
Object model
Object modelObject model
Object model
 
Object model
Object modelObject model
Object model
 
Object model
Object modelObject model
Object model
 
Object model
Object modelObject model
Object model
 
Object model
Object modelObject model
Object model
 
Object model
Object modelObject model
Object model
 
Object oriented programming
Object oriented programmingObject oriented programming
Object oriented programming
 
C++ in object oriented programming
C++ in object oriented programmingC++ in object oriented programming
C++ in object oriented programming
 
5-CEN6016-Chapter1.ppt
5-CEN6016-Chapter1.ppt5-CEN6016-Chapter1.ppt
5-CEN6016-Chapter1.ppt
 
1. OBJECT ORIENTED PROGRAMMING USING JAVA - OOps Concepts.ppt
1. OBJECT ORIENTED PROGRAMMING USING JAVA - OOps Concepts.ppt1. OBJECT ORIENTED PROGRAMMING USING JAVA - OOps Concepts.ppt
1. OBJECT ORIENTED PROGRAMMING USING JAVA - OOps Concepts.ppt
 
1-Lec - Introduction vhvv,vbvv,v (2).ppt
1-Lec - Introduction vhvv,vbvv,v (2).ppt1-Lec - Introduction vhvv,vbvv,v (2).ppt
1-Lec - Introduction vhvv,vbvv,v (2).ppt
 
Teaching Object Oriented Programming Courses by Sandeep K Singh JIIT,Noida
Teaching Object Oriented Programming Courses by Sandeep K Singh JIIT,NoidaTeaching Object Oriented Programming Courses by Sandeep K Singh JIIT,Noida
Teaching Object Oriented Programming Courses by Sandeep K Singh JIIT,Noida
 

Último

Molecular markers- RFLP, RAPD, AFLP, SNP etc.
Molecular markers- RFLP, RAPD, AFLP, SNP etc.Molecular markers- RFLP, RAPD, AFLP, SNP etc.
Molecular markers- RFLP, RAPD, AFLP, SNP etc.Silpa
 
Vip profile Call Girls In Lonavala 9748763073 For Genuine Sex Service At Just...
Vip profile Call Girls In Lonavala 9748763073 For Genuine Sex Service At Just...Vip profile Call Girls In Lonavala 9748763073 For Genuine Sex Service At Just...
Vip profile Call Girls In Lonavala 9748763073 For Genuine Sex Service At Just...Monika Rani
 
development of diagnostic enzyme assay to detect leuser virus
development of diagnostic enzyme assay to detect leuser virusdevelopment of diagnostic enzyme assay to detect leuser virus
development of diagnostic enzyme assay to detect leuser virusNazaninKarimi6
 
Asymmetry in the atmosphere of the ultra-hot Jupiter WASP-76 b
Asymmetry in the atmosphere of the ultra-hot Jupiter WASP-76 bAsymmetry in the atmosphere of the ultra-hot Jupiter WASP-76 b
Asymmetry in the atmosphere of the ultra-hot Jupiter WASP-76 bSérgio Sacani
 
GBSN - Microbiology (Unit 3)
GBSN - Microbiology (Unit 3)GBSN - Microbiology (Unit 3)
GBSN - Microbiology (Unit 3)Areesha Ahmad
 
Dubai Call Girls Beauty Face Teen O525547819 Call Girls Dubai Young
Dubai Call Girls Beauty Face Teen O525547819 Call Girls Dubai YoungDubai Call Girls Beauty Face Teen O525547819 Call Girls Dubai Young
Dubai Call Girls Beauty Face Teen O525547819 Call Girls Dubai Youngkajalvid75
 
Locating and isolating a gene, FISH, GISH, Chromosome walking and jumping, te...
Locating and isolating a gene, FISH, GISH, Chromosome walking and jumping, te...Locating and isolating a gene, FISH, GISH, Chromosome walking and jumping, te...
Locating and isolating a gene, FISH, GISH, Chromosome walking and jumping, te...Silpa
 
Forensic Biology & Its biological significance.pdf
Forensic Biology & Its biological significance.pdfForensic Biology & Its biological significance.pdf
Forensic Biology & Its biological significance.pdfrohankumarsinghrore1
 
Proteomics: types, protein profiling steps etc.
Proteomics: types, protein profiling steps etc.Proteomics: types, protein profiling steps etc.
Proteomics: types, protein profiling steps etc.Silpa
 
Thyroid Physiology_Dr.E. Muralinath_ Associate Professor
Thyroid Physiology_Dr.E. Muralinath_ Associate ProfessorThyroid Physiology_Dr.E. Muralinath_ Associate Professor
Thyroid Physiology_Dr.E. Muralinath_ Associate Professormuralinath2
 
Sector 62, Noida Call girls :8448380779 Model Escorts | 100% verified
Sector 62, Noida Call girls :8448380779 Model Escorts | 100% verifiedSector 62, Noida Call girls :8448380779 Model Escorts | 100% verified
Sector 62, Noida Call girls :8448380779 Model Escorts | 100% verifiedDelhi Call girls
 
Kochi ❤CALL GIRL 84099*07087 ❤CALL GIRLS IN Kochi ESCORT SERVICE❤CALL GIRL
Kochi ❤CALL GIRL 84099*07087 ❤CALL GIRLS IN Kochi ESCORT SERVICE❤CALL GIRLKochi ❤CALL GIRL 84099*07087 ❤CALL GIRLS IN Kochi ESCORT SERVICE❤CALL GIRL
Kochi ❤CALL GIRL 84099*07087 ❤CALL GIRLS IN Kochi ESCORT SERVICE❤CALL GIRLkantirani197
 
GBSN - Microbiology (Unit 2)
GBSN - Microbiology (Unit 2)GBSN - Microbiology (Unit 2)
GBSN - Microbiology (Unit 2)Areesha Ahmad
 
pumpkin fruit fly, water melon fruit fly, cucumber fruit fly
pumpkin fruit fly, water melon fruit fly, cucumber fruit flypumpkin fruit fly, water melon fruit fly, cucumber fruit fly
pumpkin fruit fly, water melon fruit fly, cucumber fruit flyPRADYUMMAURYA1
 
❤Jammu Kashmir Call Girls 8617697112 Personal Whatsapp Number 💦✅.
❤Jammu Kashmir Call Girls 8617697112 Personal Whatsapp Number 💦✅.❤Jammu Kashmir Call Girls 8617697112 Personal Whatsapp Number 💦✅.
❤Jammu Kashmir Call Girls 8617697112 Personal Whatsapp Number 💦✅.Nitya salvi
 
Pulmonary drug delivery system M.pharm -2nd sem P'ceutics
Pulmonary drug delivery system M.pharm -2nd sem P'ceuticsPulmonary drug delivery system M.pharm -2nd sem P'ceutics
Pulmonary drug delivery system M.pharm -2nd sem P'ceuticssakshisoni2385
 
High Profile 🔝 8250077686 📞 Call Girls Service in GTB Nagar🍑
High Profile 🔝 8250077686 📞 Call Girls Service in GTB Nagar🍑High Profile 🔝 8250077686 📞 Call Girls Service in GTB Nagar🍑
High Profile 🔝 8250077686 📞 Call Girls Service in GTB Nagar🍑Damini Dixit
 
Human & Veterinary Respiratory Physilogy_DR.E.Muralinath_Associate Professor....
Human & Veterinary Respiratory Physilogy_DR.E.Muralinath_Associate Professor....Human & Veterinary Respiratory Physilogy_DR.E.Muralinath_Associate Professor....
Human & Veterinary Respiratory Physilogy_DR.E.Muralinath_Associate Professor....muralinath2
 
Bacterial Identification and Classifications
Bacterial Identification and ClassificationsBacterial Identification and Classifications
Bacterial Identification and ClassificationsAreesha Ahmad
 

Último (20)

Molecular markers- RFLP, RAPD, AFLP, SNP etc.
Molecular markers- RFLP, RAPD, AFLP, SNP etc.Molecular markers- RFLP, RAPD, AFLP, SNP etc.
Molecular markers- RFLP, RAPD, AFLP, SNP etc.
 
Vip profile Call Girls In Lonavala 9748763073 For Genuine Sex Service At Just...
Vip profile Call Girls In Lonavala 9748763073 For Genuine Sex Service At Just...Vip profile Call Girls In Lonavala 9748763073 For Genuine Sex Service At Just...
Vip profile Call Girls In Lonavala 9748763073 For Genuine Sex Service At Just...
 
development of diagnostic enzyme assay to detect leuser virus
development of diagnostic enzyme assay to detect leuser virusdevelopment of diagnostic enzyme assay to detect leuser virus
development of diagnostic enzyme assay to detect leuser virus
 
Asymmetry in the atmosphere of the ultra-hot Jupiter WASP-76 b
Asymmetry in the atmosphere of the ultra-hot Jupiter WASP-76 bAsymmetry in the atmosphere of the ultra-hot Jupiter WASP-76 b
Asymmetry in the atmosphere of the ultra-hot Jupiter WASP-76 b
 
GBSN - Microbiology (Unit 3)
GBSN - Microbiology (Unit 3)GBSN - Microbiology (Unit 3)
GBSN - Microbiology (Unit 3)
 
Dubai Call Girls Beauty Face Teen O525547819 Call Girls Dubai Young
Dubai Call Girls Beauty Face Teen O525547819 Call Girls Dubai YoungDubai Call Girls Beauty Face Teen O525547819 Call Girls Dubai Young
Dubai Call Girls Beauty Face Teen O525547819 Call Girls Dubai Young
 
Locating and isolating a gene, FISH, GISH, Chromosome walking and jumping, te...
Locating and isolating a gene, FISH, GISH, Chromosome walking and jumping, te...Locating and isolating a gene, FISH, GISH, Chromosome walking and jumping, te...
Locating and isolating a gene, FISH, GISH, Chromosome walking and jumping, te...
 
Forensic Biology & Its biological significance.pdf
Forensic Biology & Its biological significance.pdfForensic Biology & Its biological significance.pdf
Forensic Biology & Its biological significance.pdf
 
Proteomics: types, protein profiling steps etc.
Proteomics: types, protein profiling steps etc.Proteomics: types, protein profiling steps etc.
Proteomics: types, protein profiling steps etc.
 
Thyroid Physiology_Dr.E. Muralinath_ Associate Professor
Thyroid Physiology_Dr.E. Muralinath_ Associate ProfessorThyroid Physiology_Dr.E. Muralinath_ Associate Professor
Thyroid Physiology_Dr.E. Muralinath_ Associate Professor
 
Sector 62, Noida Call girls :8448380779 Model Escorts | 100% verified
Sector 62, Noida Call girls :8448380779 Model Escorts | 100% verifiedSector 62, Noida Call girls :8448380779 Model Escorts | 100% verified
Sector 62, Noida Call girls :8448380779 Model Escorts | 100% verified
 
Kochi ❤CALL GIRL 84099*07087 ❤CALL GIRLS IN Kochi ESCORT SERVICE❤CALL GIRL
Kochi ❤CALL GIRL 84099*07087 ❤CALL GIRLS IN Kochi ESCORT SERVICE❤CALL GIRLKochi ❤CALL GIRL 84099*07087 ❤CALL GIRLS IN Kochi ESCORT SERVICE❤CALL GIRL
Kochi ❤CALL GIRL 84099*07087 ❤CALL GIRLS IN Kochi ESCORT SERVICE❤CALL GIRL
 
GBSN - Microbiology (Unit 2)
GBSN - Microbiology (Unit 2)GBSN - Microbiology (Unit 2)
GBSN - Microbiology (Unit 2)
 
pumpkin fruit fly, water melon fruit fly, cucumber fruit fly
pumpkin fruit fly, water melon fruit fly, cucumber fruit flypumpkin fruit fly, water melon fruit fly, cucumber fruit fly
pumpkin fruit fly, water melon fruit fly, cucumber fruit fly
 
❤Jammu Kashmir Call Girls 8617697112 Personal Whatsapp Number 💦✅.
❤Jammu Kashmir Call Girls 8617697112 Personal Whatsapp Number 💦✅.❤Jammu Kashmir Call Girls 8617697112 Personal Whatsapp Number 💦✅.
❤Jammu Kashmir Call Girls 8617697112 Personal Whatsapp Number 💦✅.
 
Pulmonary drug delivery system M.pharm -2nd sem P'ceutics
Pulmonary drug delivery system M.pharm -2nd sem P'ceuticsPulmonary drug delivery system M.pharm -2nd sem P'ceutics
Pulmonary drug delivery system M.pharm -2nd sem P'ceutics
 
High Profile 🔝 8250077686 📞 Call Girls Service in GTB Nagar🍑
High Profile 🔝 8250077686 📞 Call Girls Service in GTB Nagar🍑High Profile 🔝 8250077686 📞 Call Girls Service in GTB Nagar🍑
High Profile 🔝 8250077686 📞 Call Girls Service in GTB Nagar🍑
 
Clean In Place(CIP).pptx .
Clean In Place(CIP).pptx                 .Clean In Place(CIP).pptx                 .
Clean In Place(CIP).pptx .
 
Human & Veterinary Respiratory Physilogy_DR.E.Muralinath_Associate Professor....
Human & Veterinary Respiratory Physilogy_DR.E.Muralinath_Associate Professor....Human & Veterinary Respiratory Physilogy_DR.E.Muralinath_Associate Professor....
Human & Veterinary Respiratory Physilogy_DR.E.Muralinath_Associate Professor....
 
Bacterial Identification and Classifications
Bacterial Identification and ClassificationsBacterial Identification and Classifications
Bacterial Identification and Classifications
 

Introduction to Object Oriented Programming

  • 1. Introduction to Object Oriented Programming “The World is Object-Oriented” -Alan Kay 1 JCa#de Moutaz Haddara Associate Professor Westerdals- Oslo School of Arts, Communication, & Technology
  • 3. Introduction – A Brief Programming History – OOP – Classes & Objects 3
  • 4. 4 Computer Programming An algorithm is a step-by-step process. A computer program is a step-by-step set of instructions for a computer. Every computer program is an algorithm.
  • 5. 5 Computer Programming The history of computer programming is a steady move away from machine-oriented views of programming towards concepts and metaphors that more closely reflect the way in which we ourselves see & understand the world
  • 6. 6 Programming Languages • Programming languages allow programmers to develop software. • The three major families of languages are: – Machine languages – Assembly languages – High-Level languages
  • 7. 7 Machine Languages • Comprised of 1s and 0s • The “native” language of a computer • Difficult to program – one misplaced 1 or 0 will cause the program to fail. • Example of code: 1110100010101 111010101110 10111010110100 10100011110111
  • 8. 8 Assembly Languages • Assembly languages are a step towards easier programming. • Assembly languages are comprised of a set of elemental commands which are tied to a specific processor. • Assembly language code needs to be translated to machine language before the computer processes it. • Example: ADD 1001010, 1011010
  • 9. 9 High-Level Languages • High-level languages represent a giant leap towards easier programming. • The syntax of HL languages is similar to English. • Example: grossPay = basePay + overTimePay • Interpreter – Executes high level language programs without compilation. • Historically, we divide HL languages into two groups: – Procedural languages – Object-Oriented languages (OOP)
  • 10. 10 Procedural Languages • Early high-level languages are typically called procedural languages. • Procedural languages are characterized by sequential sets of linear commands. The focus of such languages is on structure. • Examples include C, COBOL, Fortran, LISP, Perl, HTML, VBScript
  • 11. 11 Object-Oriented Languages • The focus of OOP languages is not on structure, but on modeling data. • Programmers code using “blueprints” of data models called classes. • Examples of OOP languages include C++, Visual Basic.NET and Java.
  • 12. 12 Early programming languages 1950s 1960s 1970s Algol68 Classic C Simula Pascal BCPL Lisp Fortran COBOL Algol60 PL1 Red==major commercial use Blue==will produce important “offspring”
  • 13. 13 Modern programming languages C++ Object Pascal Java95 C++98 Java04 Ada98 C# C++0x Lisp Python Smalltalk Fortran77 Ada Eiffel Simula67 COBOL89 PHP C89 Pascal PERL Visual Basic COBOL04 Javascript
  • 14. • Simula is a name for two simulation programming languages, Simula I and Simula 67, developed in the 1960s at the Norwegian Computing Center in Oslo, by Ole-Johan Dahl and Kristen Nygaard. • Simula is considered the first object-oriented 14 programming language. • Simula was designed for doing simulations, and the needs of that domain provided the framework for many of the features of object-oriented languages today.
  • 15.  Introduction – A Brief Programming History – OOP – Classes & Objects 15
  • 16. 16 OOP • OOP is mainly a program design philosophy. • OOP uses a different set of programming languages than old procedural programming languages (C, Pascal, etc.). • Everything in OOP is grouped as self sustainable "objects". Hence, you gain re-usability by means of four main object-oriented programming concepts.
  • 17. 17 OOP • In OOP programmers define not only the data type of a data structure, but also the types of operations/methods (functions) that can be applied to the data structure. • In this way, the data structure becomes an object that includes both data and functions (methods) in one unit. In addition, programmers can create relationships between one object and another. • For example, objects can inherit characteristics from other objects.
  • 18. Object-Oriented Programming Languages 18 · Pure OO Languages Eiffel, Actor, Emerald, JADE, Obix, Ruby, Python, Scala, Smalltalk, Self. · Hybrid OO Languages Delphi/Object Pascal, C++, Java, C#, VB.NET, Pascal, Visual Basic, MATLAB, Fortran, Perl, COBOL 2002, PHP, ABAP, Ada 95.
  • 19. 19 OOP Key idea in object-oriented: The real world can be “accurately” described as a collection of objects that interact.
  • 20. OOP Basic Terminology Object - usually a person, place or thing (a noun) Method - an action performed by an object (a verb) Property or attribute - Characteristics of certain object. Class - a category of similar objects (such as automobiles), does 20 not hold any values of the object’s attributes/properties
  • 21. Introduction – A Brief Programming History – OOP – Classes & Objects 21
  • 22. 22 Classes and Objects • A class is a prototype, idea, and blueprint for creating objects. • An object is an instance of a class. • For example, in Java we define classes, which in turn are used to create objects • A class has a constructor for creating objects • Class is composed of three things: its name, attributes/properties, and methods.
  • 23. 23 Classes (objects) Objects: Instances of the class Methods: Functions of class Class Instance Properties: Belong to the object Class Properties: Belong to the class
  • 24. 24 Classes & Objects A class is a definition of objects with the same properties and the same methods.
  • 26. 26 Almost everything in the world can be represented as an object • A 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, … • An information system, financial, legal, etc..
  • 27. 27 What Is an Object, again? An object is an instance of a class
  • 28. More about objects • Informally, an object represents an entity, either 28 physical, conceptual, or software. – Physical entity – Conceptual entity – Software entity Truck Chemical Process Linked List
  • 29. More formal definition of an “Object” 29 An object is a computational entity that: 1. Encapsulates some state 2. Is able to perform actions, or methods, on this state 3. Communicates with other objects via message passing
  • 30. 30 Classes & Objects Class PROPERTY Attribute or state METHOD Do something: function & procedure CAR PROPERTY Plate no: Color: Manufacturer: Model: Gear type: METHOD Moves forward Moves backward Moves right Moves left Stops “X” CAR AD47483 Blue Mercedes CLK Automatic
  • 31. 31 Classes & Objects Time hour minute void addMinutes( int m ) inTime Attributes: hour = 8 minute = 30 Methods: void addMinutes(int m) outTime Attributes: hour = 17 minute = 35 Methods: void addMinutes(int m) class objects
  • 32. 32 Class/Object Each copy of an object from a particular class is called an instance of the class.
  • 33. 33 Class/Object The act of creating a new instance of an class is called instantiation.
  • 34. 34 In short… • An Object is a Class when it comes alive! • Homo Sapien is a class, John and Jack are objects • Animal is a class “Snowball” the cat is an object • Vehicle is a class My neighbor's BMW is an object • Galaxy is a class, the MilkyWay is an object
  • 35. 35 Technical contrast between Objects & Classes CLASS OBJECT Class is a data type Object is an instance of Class. It generates OBJECTS It gives life to CLASS Does not occupy memory location It occupies memory location. It cannot be manipulated because it is not available in memory (except static class) It can be manipulated. Object is a class in “runtime”
  • 36. 36 Objects Need to Collaborate! • Objects are useless unless they can collaborate together to solve a problem. – Each object is responsible for its own behavior and status. – No one object can carry out every responsibility on its own. • How do objects interact with each other? – They interact through messages.
  • 37. 37 Object Interaction Message Object 3 Object 2 Object 1 Property Method Property Method Property Method
  • 38. Example of Object Interaction • The OrderEntryForm wants Order to calculate the total NOK 38 value for the order. orderID date salesTotal tax shipDate calculateOrderTotal() Message OrderEntryForm Order The class Order has the responsibility to calculate the total NOK value.
  • 39. 39  OOP Basic Concepts – Encapsulation – Inheritance – Abstraction – Polymorphism
  • 41. 41 Encapsulation • Is the inclusion of property & method within a class/object in which it needs to function properly. • Also, enables reusability of an instant of an already implemented class within a new class while hiding & protecting the method and properties from the client classes.
  • 42. 42 Encapsulation • The class is kind of a container or capsule or a cell, which encapsulate the set of methods, attributes and properties to provide its indented functionalities to other classes. • In that sense, encapsulation also allows a class to change its internal implementation without hurting the overall functioning of the system. • That idea of encapsulation is to hide how a class does its operations while allowing requesting its operations.
  • 43. Example: • Let’s say we have a class called “Date” (day, month, year). And then you need to define another class called “Person” that has the following attributes (first name, last name, and birthdate). So in this case we can instantiate an object from class “Date” inside class “Person”. 43 Encapsulation in action
  • 44. 44 Encapsulation – Benefits  Ensures that structural changes remain local:  Changing the class internals does not affect any code outside of the class  Changing methods' implementation does not reflect the clients using them  Encapsulation allows adding some logic when accessing client's data  E.g. validation on modifying a property value  Hiding implementation details reduces complexity  easier maintenance 44
  • 45. 45  OOP Basic Concepts – Encapsulation – Inheritance – Abstraction – Polymorphism
  • 46. 46 Inheritance • Inheritance—a way of organizing classes • Term comes from inheritance of traits like eye color, hair color, and so on. • Classes with properties in common can be grouped so that their common properties are only defined once in parent class. • Superclass – inherit its attributes & methods to the subclass(es). • Subclass – can inherit all its superclass attributes & methods besides having its own unique attributes & methods.
  • 47. 47 Inheritance • Inheritance allows child classes to inherit the characteristics of existing parent class • Attributes (fields and properties) • Operations (methods) • Child class can extend the parent class • Add new fields and methods • Redefine methods (modify existing behavior) • A class can implement an interface by providing implementation for all its methods 47
  • 48. 48 Inheritance • Expresses commonality among classes/objects • Allows code reusability • Highlights relationships • Helps in code organization
  • 50. Derived class Derived class 50 Inheritance – Example Person +Name: String +Address: String Employee +Company: String +Salary: double Base class Student +School: String 50 +Name: String +Address: String +Name: String +Address: String
  • 51. 51 An Inheritance Hierarchy Vehicle Subclasses Superclass Automobile Motorcycle Bus Sedan Sports Car School Bus Luxury Bus
  • 52. 52 Example: Single Inheritance One class inherits from another. Account - balance - name - number + withdraw() + createStatement() Savings Checking Superclass (parent) Subclasses Inheritance Relationship Ancestor Descendents
  • 53. 53 Example: Multiple Inheritance • A class can inherit from several other classes. FlyingThing Animal Multiple Inheritance Airplane Helicopter Bird Wolf Horse Most modern languages don’t support multiple inheritance!
  • 54. 54  OOP Basic Concepts –Encapsulation – Inheritance – Abstraction – Polymorphism
  • 55. 55 Type of Classes Concrete Class Abstract Class Can be instantiated directly Can’t be instantiated directly
  • 56. 56 Abstraction • Abstraction is a design principle. • Is the process of removing characteristics from something in order to reduce it to a set of essential characteristics. • Through the process of abstraction, a programmer hides all but the relevant data about a class in order to reduce complexity and increase reusability. • Abstraction is a basic representation of a concept.
  • 57. Abstraction • Abstraction allows programmers to represent complex 57 real world in the simplest manner. • It is a process of identifying the relevant qualities and behaviors an object should possess, in other word represent the necessary features without representing the back ground details • You should always use abstraction to ease reusability, and understanding for the design and enable extension. • When we design the abstract classes, we define the framework for later extensions.
  • 58. 58 Abstraction • An abstract class, which declared with the “abstract” keyword, cannot be instantiated. • It can only be used as a super-class for other classes that extend the abstract class. Abstract class is a design concept and implementation gets completed when it is being realized by a subclass.
  • 59. 59 Abstraction - type of classes Person DOB: Name: Address: Concrete Class Abstract Class Can be instantiated directly Can’t be instantiated directly Teacher Student DOB: Name: Address: GPA: Courses: Etc…: DOB: Name: Address: Specialization: Academic Title: Etc…: Can be instantiated directly
  • 60. • An abstract class is a class that may not have any direct 60 Abstraction Abstract class Abstract operation Shape {abstract} draw () {abstract} Circle draw () Rectangle draw () instances. • An abstract operation is an operation that it is incomplete and requires a child to supply an implementation of the operation.
  • 61. 61  OOP Basic Concepts – Encapsulation – Inheritance – Abstraction – Polymorphism
  • 62. • Encapsulation, Inheritance, and Abstraction concepts are very related to Polymorphism. 62 Polymorphism
  • 63. 63 Polymorphism • Polymorphisms is a generic term that means 'many shapes'. More precisely Polymorphisms means the ability to request that the same methods be performed by a wide range of different types of things. • In OOP, polymorphisms is a technical issue and principle. • It is achieved by using many different techniques named method overloading, operator overloading, and method overriding.
  • 64. 64 Polymorphism • An object has “multiple identities”, based on its class inheritance tree • It can be used in different ways
  • 65. Polymorphism • In Java, two or more classes could each have a 65 method called output • Each output method would do the right thing for the class that it was in. • One output might display a number (output.number) in one class, whereas it might display a name (output.text) in another class.
  • 66. 66 Polymorphism • It is the ability to look at a class in its parent image. • Lets see the robot example throughout the following few slides
  • 67. Polymorphism- Abstract class, again!!!! • It is a class that you cannot instantiate from, however, you use it to dominate and specify how the minimum requirements in an inherited classes should be. public abstract class Robot { public virtual abstract void Move() // abstract move needs } 67
  • 68. 68 public class LeggedRobot:Robot { public override void Move() { // actions of legged robot to move } }
  • 69. 69 public class WheeledRobot:Robot { public override void Move() { // actions of Wheeled robot to move } }
  • 70. 70 public void moveRobot(Robot A) { A.Move(); }
  • 71. 71 public moveAllRobots() { LeggedRobot lr = new LeggedRobot(); WheeledRobot wr = new WheeledRobot(); moveRobot(lr); moveRobot(wr); }
  • 72. 72 Polymorphism SBhiarpde Void Draw() C.Draw() T.Draw() S.Draw()
  • 74. 74 Advantages of OOP • Code reuse & recycling • Improved software-development productivity • Improved software maintainability • Faster development • Lower cost of development • Higher-quality software • Encapsulation
  • 75. 75 Disadvantages of OOP • Steep learning curve • Could lead to larger program sizes • Could produce slower programs
  • 76. 76 OOP Suitability • Object oriented programming is good in complex projects or modular type of systems. It allows simultaneous system development teams and also could aid in agile system development environments like Xtreme Programming.
  • 77. 77 References MIT OpenCourseWare: http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-01sc-introduction- to-electrical-engineering-and-computer-science-i-spring-2011/unit-1- software-engineering/object-oriented-programming Larman, C. (2012). Applying UML and Patterns: An Introduction to Object- Oriented Analysis and Design and Iterative Development, 3/e. Pearson Education India. http://docs.oracle.com/javase/tutorial/java/concepts http://en.wikipedia.org/wiki/Object-oriented_programming https://www.udacity.com/wiki/classes https://weblogs.java.net/blog/potty/archive/2014/01/20/introduction-object-oriented- programming-oop-part-i Lischner, Ray. "Introduction to Object-Oriented Programming." Exploring C++ 11. Apress, 2013. 239-244.
  • 78. 78 Thanks for your attention!