SlideShare a Scribd company logo
1 of 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!

More Related Content

What's hot

object oriented Programming ppt
object oriented Programming pptobject oriented Programming ppt
object oriented Programming pptNitesh Dubey
 
Introduction to oop
Introduction to oopIntroduction to oop
Introduction to oopcolleges
 
Object Oriented Programming Languages
Object Oriented Programming LanguagesObject Oriented Programming Languages
Object Oriented Programming LanguagesMannu Khani
 
1 unit (oops)
1 unit (oops)1 unit (oops)
1 unit (oops)Jay Patel
 
Object Oriented Language
Object Oriented LanguageObject Oriented Language
Object Oriented Languagedheva B
 
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
 
C++ OOPS Concept
C++ OOPS ConceptC++ OOPS Concept
C++ OOPS ConceptBoopathi K
 
Programming paradigm
Programming paradigmProgramming paradigm
Programming paradigmbusyking03
 
Object Oriented Analysis and Design
Object Oriented Analysis and DesignObject Oriented Analysis and Design
Object Oriented Analysis and DesignHaitham El-Ghareeb
 
Object Oriented Programming Using C++
Object Oriented Programming Using C++Object Oriented Programming Using C++
Object Oriented Programming Using C++Muhammad Waqas
 
oops concept in java | object oriented programming in java
oops concept in java | object oriented programming in javaoops concept in java | object oriented programming in java
oops concept in java | object oriented programming in javaCPD INDIA
 
Object oriented programming c++
Object oriented programming c++Object oriented programming c++
Object oriented programming c++Ankur Pandey
 
Introduction to object oriented programming
Introduction to object oriented programmingIntroduction to object oriented programming
Introduction to object oriented programmingAbzetdin Adamov
 

What's hot (20)

object oriented Programming ppt
object oriented Programming pptobject oriented Programming ppt
object oriented Programming ppt
 
Introduction to oop
Introduction to oopIntroduction to oop
Introduction to oop
 
Object Oriented Programming Languages
Object Oriented Programming LanguagesObject Oriented Programming Languages
Object Oriented Programming Languages
 
OOPS Basics With Example
OOPS Basics With ExampleOOPS Basics With Example
OOPS Basics With Example
 
1 unit (oops)
1 unit (oops)1 unit (oops)
1 unit (oops)
 
Introduction to java
Introduction to javaIntroduction to java
Introduction to java
 
Object Oriented Language
Object Oriented LanguageObject Oriented Language
Object Oriented Language
 
OOP Introduction with java programming language
OOP Introduction with java programming languageOOP Introduction with java programming language
OOP Introduction with java programming language
 
Oop Presentation
Oop PresentationOop Presentation
Oop Presentation
 
[OOP - Lec 01] Introduction to OOP
[OOP - Lec 01] Introduction to OOP[OOP - Lec 01] Introduction to OOP
[OOP - Lec 01] Introduction to OOP
 
C++ OOPS Concept
C++ OOPS ConceptC++ OOPS Concept
C++ OOPS Concept
 
Programming paradigm
Programming paradigmProgramming paradigm
Programming paradigm
 
Object Oriented Analysis and Design
Object Oriented Analysis and DesignObject Oriented Analysis and Design
Object Oriented Analysis and Design
 
Object Oriented Programming Using C++
Object Oriented Programming Using C++Object Oriented Programming Using C++
Object Oriented Programming Using C++
 
Object oriented programming
Object oriented programmingObject oriented programming
Object oriented programming
 
oops concept in java | object oriented programming in java
oops concept in java | object oriented programming in javaoops concept in java | object oriented programming in java
oops concept in java | object oriented programming in java
 
Object oriented programming c++
Object oriented programming c++Object oriented programming c++
Object oriented programming c++
 
Python programming : Classes objects
Python programming : Classes objectsPython programming : Classes objects
Python programming : Classes objects
 
Introduction to object oriented programming
Introduction to object oriented programmingIntroduction to object oriented programming
Introduction to object oriented programming
 
Features of java
Features of javaFeatures of java
Features of java
 

Similar to 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 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
 
OOP History and Core Concepts
OOP History and Core ConceptsOOP History and Core Concepts
OOP History and Core ConceptsNghia Bui Van
 

Similar to 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 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
 
OOP History and Core Concepts
OOP History and Core ConceptsOOP History and Core Concepts
OOP History and Core Concepts
 

Recently uploaded

Pests of cotton_Sucking_Pests_Dr.UPR.pdf
Pests of cotton_Sucking_Pests_Dr.UPR.pdfPests of cotton_Sucking_Pests_Dr.UPR.pdf
Pests of cotton_Sucking_Pests_Dr.UPR.pdfPirithiRaju
 
Nightside clouds and disequilibrium chemistry on the hot Jupiter WASP-43b
Nightside clouds and disequilibrium chemistry on the hot Jupiter WASP-43bNightside clouds and disequilibrium chemistry on the hot Jupiter WASP-43b
Nightside clouds and disequilibrium chemistry on the hot Jupiter WASP-43bSérgio Sacani
 
PossibleEoarcheanRecordsoftheGeomagneticFieldPreservedintheIsuaSupracrustalBe...
PossibleEoarcheanRecordsoftheGeomagneticFieldPreservedintheIsuaSupracrustalBe...PossibleEoarcheanRecordsoftheGeomagneticFieldPreservedintheIsuaSupracrustalBe...
PossibleEoarcheanRecordsoftheGeomagneticFieldPreservedintheIsuaSupracrustalBe...Sérgio Sacani
 
Natural Polymer Based Nanomaterials
Natural Polymer Based NanomaterialsNatural Polymer Based Nanomaterials
Natural Polymer Based NanomaterialsAArockiyaNisha
 
Botany krishna series 2nd semester Only Mcq type questions
Botany krishna series 2nd semester Only Mcq type questionsBotany krishna series 2nd semester Only Mcq type questions
Botany krishna series 2nd semester Only Mcq type questionsSumit Kumar yadav
 
Green chemistry and Sustainable development.pptx
Green chemistry  and Sustainable development.pptxGreen chemistry  and Sustainable development.pptx
Green chemistry and Sustainable development.pptxRajatChauhan518211
 
Recombinant DNA technology (Immunological screening)
Recombinant DNA technology (Immunological screening)Recombinant DNA technology (Immunological screening)
Recombinant DNA technology (Immunological screening)PraveenaKalaiselvan1
 
Is RISC-V ready for HPC workload? Maybe?
Is RISC-V ready for HPC workload? Maybe?Is RISC-V ready for HPC workload? Maybe?
Is RISC-V ready for HPC workload? Maybe?Patrick Diehl
 
Orientation, design and principles of polyhouse
Orientation, design and principles of polyhouseOrientation, design and principles of polyhouse
Orientation, design and principles of polyhousejana861314
 
Presentation Vikram Lander by Vedansh Gupta.pptx
Presentation Vikram Lander by Vedansh Gupta.pptxPresentation Vikram Lander by Vedansh Gupta.pptx
Presentation Vikram Lander by Vedansh Gupta.pptxgindu3009
 
Biological Classification BioHack (3).pdf
Biological Classification BioHack (3).pdfBiological Classification BioHack (3).pdf
Biological Classification BioHack (3).pdfmuntazimhurra
 
CALL ON ➥8923113531 🔝Call Girls Kesar Bagh Lucknow best Night Fun service 🪡
CALL ON ➥8923113531 🔝Call Girls Kesar Bagh Lucknow best Night Fun service  🪡CALL ON ➥8923113531 🔝Call Girls Kesar Bagh Lucknow best Night Fun service  🪡
CALL ON ➥8923113531 🔝Call Girls Kesar Bagh Lucknow best Night Fun service 🪡anilsa9823
 
Broad bean, Lima Bean, Jack bean, Ullucus.pptx
Broad bean, Lima Bean, Jack bean, Ullucus.pptxBroad bean, Lima Bean, Jack bean, Ullucus.pptx
Broad bean, Lima Bean, Jack bean, Ullucus.pptxjana861314
 
Zoology 4th semester series (krishna).pdf
Zoology 4th semester series (krishna).pdfZoology 4th semester series (krishna).pdf
Zoology 4th semester series (krishna).pdfSumit Kumar yadav
 
A relative description on Sonoporation.pdf
A relative description on Sonoporation.pdfA relative description on Sonoporation.pdf
A relative description on Sonoporation.pdfnehabiju2046
 
Discovery of an Accretion Streamer and a Slow Wide-angle Outflow around FUOri...
Discovery of an Accretion Streamer and a Slow Wide-angle Outflow around FUOri...Discovery of an Accretion Streamer and a Slow Wide-angle Outflow around FUOri...
Discovery of an Accretion Streamer and a Slow Wide-angle Outflow around FUOri...Sérgio Sacani
 
Call Us ≽ 9953322196 ≼ Call Girls In Mukherjee Nagar(Delhi) |
Call Us ≽ 9953322196 ≼ Call Girls In Mukherjee Nagar(Delhi) |Call Us ≽ 9953322196 ≼ Call Girls In Mukherjee Nagar(Delhi) |
Call Us ≽ 9953322196 ≼ Call Girls In Mukherjee Nagar(Delhi) |aasikanpl
 
Biopesticide (2).pptx .This slides helps to know the different types of biop...
Biopesticide (2).pptx  .This slides helps to know the different types of biop...Biopesticide (2).pptx  .This slides helps to know the different types of biop...
Biopesticide (2).pptx .This slides helps to know the different types of biop...RohitNehra6
 

Recently uploaded (20)

Pests of cotton_Sucking_Pests_Dr.UPR.pdf
Pests of cotton_Sucking_Pests_Dr.UPR.pdfPests of cotton_Sucking_Pests_Dr.UPR.pdf
Pests of cotton_Sucking_Pests_Dr.UPR.pdf
 
Nightside clouds and disequilibrium chemistry on the hot Jupiter WASP-43b
Nightside clouds and disequilibrium chemistry on the hot Jupiter WASP-43bNightside clouds and disequilibrium chemistry on the hot Jupiter WASP-43b
Nightside clouds and disequilibrium chemistry on the hot Jupiter WASP-43b
 
PossibleEoarcheanRecordsoftheGeomagneticFieldPreservedintheIsuaSupracrustalBe...
PossibleEoarcheanRecordsoftheGeomagneticFieldPreservedintheIsuaSupracrustalBe...PossibleEoarcheanRecordsoftheGeomagneticFieldPreservedintheIsuaSupracrustalBe...
PossibleEoarcheanRecordsoftheGeomagneticFieldPreservedintheIsuaSupracrustalBe...
 
Natural Polymer Based Nanomaterials
Natural Polymer Based NanomaterialsNatural Polymer Based Nanomaterials
Natural Polymer Based Nanomaterials
 
Botany krishna series 2nd semester Only Mcq type questions
Botany krishna series 2nd semester Only Mcq type questionsBotany krishna series 2nd semester Only Mcq type questions
Botany krishna series 2nd semester Only Mcq type questions
 
Green chemistry and Sustainable development.pptx
Green chemistry  and Sustainable development.pptxGreen chemistry  and Sustainable development.pptx
Green chemistry and Sustainable development.pptx
 
Recombinant DNA technology (Immunological screening)
Recombinant DNA technology (Immunological screening)Recombinant DNA technology (Immunological screening)
Recombinant DNA technology (Immunological screening)
 
Is RISC-V ready for HPC workload? Maybe?
Is RISC-V ready for HPC workload? Maybe?Is RISC-V ready for HPC workload? Maybe?
Is RISC-V ready for HPC workload? Maybe?
 
Orientation, design and principles of polyhouse
Orientation, design and principles of polyhouseOrientation, design and principles of polyhouse
Orientation, design and principles of polyhouse
 
Presentation Vikram Lander by Vedansh Gupta.pptx
Presentation Vikram Lander by Vedansh Gupta.pptxPresentation Vikram Lander by Vedansh Gupta.pptx
Presentation Vikram Lander by Vedansh Gupta.pptx
 
Biological Classification BioHack (3).pdf
Biological Classification BioHack (3).pdfBiological Classification BioHack (3).pdf
Biological Classification BioHack (3).pdf
 
The Philosophy of Science
The Philosophy of ScienceThe Philosophy of Science
The Philosophy of Science
 
CALL ON ➥8923113531 🔝Call Girls Kesar Bagh Lucknow best Night Fun service 🪡
CALL ON ➥8923113531 🔝Call Girls Kesar Bagh Lucknow best Night Fun service  🪡CALL ON ➥8923113531 🔝Call Girls Kesar Bagh Lucknow best Night Fun service  🪡
CALL ON ➥8923113531 🔝Call Girls Kesar Bagh Lucknow best Night Fun service 🪡
 
Broad bean, Lima Bean, Jack bean, Ullucus.pptx
Broad bean, Lima Bean, Jack bean, Ullucus.pptxBroad bean, Lima Bean, Jack bean, Ullucus.pptx
Broad bean, Lima Bean, Jack bean, Ullucus.pptx
 
CELL -Structural and Functional unit of life.pdf
CELL -Structural and Functional unit of life.pdfCELL -Structural and Functional unit of life.pdf
CELL -Structural and Functional unit of life.pdf
 
Zoology 4th semester series (krishna).pdf
Zoology 4th semester series (krishna).pdfZoology 4th semester series (krishna).pdf
Zoology 4th semester series (krishna).pdf
 
A relative description on Sonoporation.pdf
A relative description on Sonoporation.pdfA relative description on Sonoporation.pdf
A relative description on Sonoporation.pdf
 
Discovery of an Accretion Streamer and a Slow Wide-angle Outflow around FUOri...
Discovery of an Accretion Streamer and a Slow Wide-angle Outflow around FUOri...Discovery of an Accretion Streamer and a Slow Wide-angle Outflow around FUOri...
Discovery of an Accretion Streamer and a Slow Wide-angle Outflow around FUOri...
 
Call Us ≽ 9953322196 ≼ Call Girls In Mukherjee Nagar(Delhi) |
Call Us ≽ 9953322196 ≼ Call Girls In Mukherjee Nagar(Delhi) |Call Us ≽ 9953322196 ≼ Call Girls In Mukherjee Nagar(Delhi) |
Call Us ≽ 9953322196 ≼ Call Girls In Mukherjee Nagar(Delhi) |
 
Biopesticide (2).pptx .This slides helps to know the different types of biop...
Biopesticide (2).pptx  .This slides helps to know the different types of biop...Biopesticide (2).pptx  .This slides helps to know the different types of biop...
Biopesticide (2).pptx .This slides helps to know the different types of biop...
 

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!