An
Introduction
to Object
Oriented
Programming
Muhammad
Adil Raja
Introduction
Abstraction
Object
Oriented
Design
Classes and
Methods
Messages,
Instances
and
Initialization
Inheritance
and
Substitution
Subclasses
and
Subtypes
AN INTRODUCTION TO OBJECT ORIENTED
PROGRAMMING (OOP)
A COURSE OUTLINE
Muhammad Adil Raja
Roaming Researchers, Inc.
cbnd
March 31, 2015
An
Introduction
to Object
Oriented
Programming
Muhammad
Adil Raja
Introduction
Abstraction
Object
Oriented
Design
Classes and
Methods
Messages,
Instances
and
Initialization
Inheritance
and
Substitution
Subclasses
and
Subtypes
OUTLINE I
1 INTRODUCTION
2 ABSTRACTION
3 OBJECT ORIENTED DESIGN
4 CLASSES AND METHODS
5 MESSAGES, INSTANCES AND INITIALIZATION
6 INHERITANCE AND SUBSTITUTION
7 SUBCLASSES AND SUBTYPES
8 STATIC AND DYNAMIC BEHAVIOR
9 IMPLICATIONS OF SUBSTITUTION
10 MULTIPLE INHERITANCE
11 POLYMORPHISM AND SOFTWARE REUSE
12 OVERLOADING
13 OVERRIDING
14 THE POLYMORPHIC VARIABLE
15 GENERICS
An
Introduction
to Object
Oriented
Programming
Muhammad
Adil Raja
Introduction
Abstraction
Object
Oriented
Design
Classes and
Methods
Messages,
Instances
and
Initialization
Inheritance
and
Substitution
Subclasses
and
Subtypes
OUTLINE II
16 CONTAINER CLASSES
17 FRAMEWORKS
18 OBJECT INTERCONNECTIONS
19 DESIGN PETTERNS
20 REFLECTION AND INTROSPECTION
21 DISTRIBUTED OBJECTS
22 IMPLEMENTATION
23 REFERENCES
An
Introduction
to Object
Oriented
Programming
Muhammad
Adil Raja
Introduction
Abstraction
Object
Oriented
Design
Classes and
Methods
Messages,
Instances
and
Initialization
Inheritance
and
Substitution
Subclasses
and
Subtypes
INTRODUCTION I
What is OOP?
Why is it popular?
Benefits of OOP.
Messages and methods.
Hierarchies and inheritance.
An
Introduction
to Object
Oriented
Programming
Muhammad
Adil Raja
Introduction
Abstraction
Object
Oriented
Design
Classes and
Methods
Messages,
Instances
and
Initialization
Inheritance
and
Substitution
Subclasses
and
Subtypes
ABSTRACTION I
Layers of abstraction.
Encapsulation and interchangeability.
Interface and Implementation.
Abstract data types.
Messages, inheritance and polymorphism.
An
Introduction
to Object
Oriented
Programming
Muhammad
Adil Raja
Introduction
Abstraction
Object
Oriented
Design
Classes and
Methods
Messages,
Instances
and
Initialization
Inheritance
and
Substitution
Subclasses
and
Subtypes
OBJECT ORIENTED DESIGN I
Components.
An
Introduction
to Object
Oriented
Programming
Muhammad
Adil Raja
Introduction
Abstraction
Object
Oriented
Design
Classes and
Methods
Messages,
Instances
and
Initialization
Inheritance
and
Substitution
Subclasses
and
Subtypes
CLASSES AND METHODS I
Encapsulation.
Class definitions.
C++, Java, and C-sharp.
Methods.
Constant and immutable data fields.
Separating definition and implementation.
Variations on Class themes.
Methods without classes.
Interfaces.
Properties.
Forward definitions.
Inner or nested classes.
Class data fields.
Classes as objects.
An
Introduction
to Object
Oriented
Programming
Muhammad
Adil Raja
Introduction
Abstraction
Object
Oriented
Design
Classes and
Methods
Messages,
Instances
and
Initialization
Inheritance
and
Substitution
Subclasses
and
Subtypes
MESSAGES, INSTANCES AND INITIALIZATION I
Message-passing syntax.
Statically and dynamically typed languages.
Accessing the receiver from within method.
Object creation.
Creation of arrays of objects.
Pointers and memory allocation.
Memory recovery.
COnstructors.
The orthodox canonical class form.
Constant values.
Destructors and finalizers.
Metaclasses.
An
Introduction
to Object
Oriented
Programming
Muhammad
Adil Raja
Introduction
Abstraction
Object
Oriented
Design
Classes and
Methods
Messages,
Instances
and
Initialization
Inheritance
and
Substitution
Subclasses
and
Subtypes
INHERITANCE AND SUBSTITUTION I
An intuitive description of inheritance.
The is-a test.
Reasons to use inheritance.
Inheritance in various languages.
Subclass, subtype, and substitution.
Substitution and strong typing.
Overriding and virtual methods.
Interfaces and abstract classes.
Forms of inheritance.
1 Subclassing for specialization (subtyping).
2 Subclassing for specification.
3 Subclassing for construction.
4 Subclassing for generalization.
5 Subclassing for extension.
An
Introduction
to Object
Oriented
Programming
Muhammad
Adil Raja
Introduction
Abstraction
Object
Oriented
Design
Classes and
Methods
Messages,
Instances
and
Initialization
Inheritance
and
Substitution
Subclasses
and
Subtypes
INHERITANCE AND SUBSTITUTION II
6 Subclassing for limitation.
7 Subclassing for variance.
8 Subclassing for combination.
9 SUmmary.
Variations on inheritance.
Anonymous classes in Java.
Inheritance and constructors.
Virtual destructors.
The benefits of inheritance.
Virtual destructors.
The benefits of inheritance.
1 Software reusability.
2 Code sharing.
3 Consistency of inheritance.
4 Software components.
An
Introduction
to Object
Oriented
Programming
Muhammad
Adil Raja
Introduction
Abstraction
Object
Oriented
Design
Classes and
Methods
Messages,
Instances
and
Initialization
Inheritance
and
Substitution
Subclasses
and
Subtypes
INHERITANCE AND SUBSTITUTION III
5 Rapid prototyping.
6 Polymorphism and frameworks.
7 Information hiding.
The costs of inheritance.
1 Execution speed.
2 Program size.
3 Message-passing overhead.
4 Program complexity.
An
Introduction
to Object
Oriented
Programming
Muhammad
Adil Raja
Introduction
Abstraction
Object
Oriented
Design
Classes and
Methods
Messages,
Instances
and
Initialization
Inheritance
and
Substitution
Subclasses
and
Subtypes
SUBCLASSES AND SUBTYPES I
Substitutability.
Subtypes.
The substitutability paradox.
Subclassing for construction.
Dynamically typed languages.
Pre- and Postconditions.
Refinement semantics.
An
Introduction
to Object
Oriented
Programming
Muhammad
Adil Raja
Introduction
Abstraction
Object
Oriented
Design
Classes and
Methods
Messages,
Instances
and
Initialization
Inheritance
and
Substitution
Subclasses
and
Subtypes
STATIC AND DYNAMIC BEHAVIOR I
Static versus dynamic typing.
Static and dynamic classes.
Runtime type determination.
Down casting (reverse polymorphism).
Run-time testing without language support.
Testing message understanding.
Static versus dynamic method binding.
An
Introduction
to Object
Oriented
Programming
Muhammad
Adil Raja
Introduction
Abstraction
Object
Oriented
Design
Classes and
Methods
Messages,
Instances
and
Initialization
Inheritance
and
Substitution
Subclasses
and
Subtypes
IMPLICATIONS OF SUBSTITUTION I
Memory layout.
Minimum static space allocation.
Maximum static space allocation.
Dynamic memory allocation.
Assignment.
Assignment in C++
Copies and clones.
Copies in Smalltalk and Objective-C.
Copy constructors in C++.
Cloning in java.
Equality.
Equality and identity.
The paradoxes of equality testing.
An
Introduction
to Object
Oriented
Programming
Muhammad
Adil Raja
Introduction
Abstraction
Object
Oriented
Design
Classes and
Methods
Messages,
Instances
and
Initialization
Inheritance
and
Substitution
Subclasses
and
Subtypes
MULTIPLE INHERITANCE I
Inheritance as categorization.
Incomparable complex numbers.
Problems arising from multiple inheritance.
Name ambiguity.
Multiple inheritance of interfaces.
Inheritance from common ancestors.
Inner classes.
An
Introduction
to Object
Oriented
Programming
Muhammad
Adil Raja
Introduction
Abstraction
Object
Oriented
Design
Classes and
Methods
Messages,
Instances
and
Initialization
Inheritance
and
Substitution
Subclasses
and
Subtypes
POLYMORPHISM AND SOFTWARE REUSE I
Polymorphism in programming languages.
Mechanisms for software reuse.
Using composition.
Using inheritance.
Efficiency and polymorphism.
An
Introduction
to Object
Oriented
Programming
Muhammad
Adil Raja
Introduction
Abstraction
Object
Oriented
Design
Classes and
Methods
Messages,
Instances
and
Initialization
Inheritance
and
Substitution
Subclasses
and
Subtypes
OVERLOADING I
Type signatures and scopes.
Overloading based on scopes.
Overloading based on type signatures.
Redefinition.
Multi-methods.
Overloading based on values.
An
Introduction
to Object
Oriented
Programming
Muhammad
Adil Raja
Introduction
Abstraction
Object
Oriented
Design
Classes and
Methods
Messages,
Instances
and
Initialization
Inheritance
and
Substitution
Subclasses
and
Subtypes
OVERRIDING I
Notating overriding.
Replacement versus refinement.
Deferred methods.
Covariance and contravariance.
Variations in overriding.
FInal methods in java.
Versioning in C-sharp.
An
Introduction
to Object
Oriented
Programming
Muhammad
Adil Raja
Introduction
Abstraction
Object
Oriented
Design
Classes and
Methods
Messages,
Instances
and
Initialization
Inheritance
and
Substitution
Subclasses
and
Subtypes
THE POLYMORPHIC VARIABLE I
Simple polymorphic variables.
The receiver variable.
Downcasting.
Pure polymorphism.
An
Introduction
to Object
Oriented
Programming
Muhammad
Adil Raja
Introduction
Abstraction
Object
Oriented
Design
Classes and
Methods
Messages,
Instances
and
Initialization
Inheritance
and
Substitution
Subclasses
and
Subtypes
GENERICS I
Template functions.
Template classes.
Inheritance in template arguments.
An
Introduction
to Object
Oriented
Programming
Muhammad
Adil Raja
Introduction
Abstraction
Object
Oriented
Design
Classes and
Methods
Messages,
Instances
and
Initialization
Inheritance
and
Substitution
Subclasses
and
Subtypes
CONTAINER CLASSES I
Containers in dynamically types languages.
Containers in statically types languages.
Restricting element types.
Element traversal.
An
Introduction
to Object
Oriented
Programming
Muhammad
Adil Raja
Introduction
Abstraction
Object
Oriented
Design
Classes and
Methods
Messages,
Instances
and
Initialization
Inheritance
and
Substitution
Subclasses
and
Subtypes
FRAMEWORKS I
Reuse and specialization.
An upside-down abstractions.
Example frameworks.
An
Introduction
to Object
Oriented
Programming
Muhammad
Adil Raja
Introduction
Abstraction
Object
Oriented
Design
Classes and
Methods
Messages,
Instances
and
Initialization
Inheritance
and
Substitution
Subclasses
and
Subtypes
OBJECT INTERCONNECTIONS I
Coupling and cohesion.
Subclass clients and user clients.
Control of access and visibility.
Intentional dependency.
An
Introduction
to Object
Oriented
Programming
Muhammad
Adil Raja
Introduction
Abstraction
Object
Oriented
Design
Classes and
Methods
Messages,
Instances
and
Initialization
Inheritance
and
Substitution
Subclasses
and
Subtypes
DESIGN PATTERNS I
Controlling information flow.
Describing patterns.
Iterator.
Software factory.
Strategy.
Singleton.
Composite.
Decorator.
The double-dispatching pattern.
Flyweight.
Proxy.
Facade.
Observer.
An
Introduction
to Object
Oriented
Programming
Muhammad
Adil Raja
Introduction
Abstraction
Object
Oriented
Design
Classes and
Methods
Messages,
Instances
and
Initialization
Inheritance
and
Substitution
Subclasses
and
Subtypes
REFLECTION AND INTROSPECTION I
Mechanisms for understanding.
Methods as objects.
Mechanisms for for modification.
Metaclasses.
An
Introduction
to Object
Oriented
Programming
Muhammad
Adil Raja
Introduction
Abstraction
Object
Oriented
Design
Classes and
Methods
Messages,
Instances
and
Initialization
Inheritance
and
Substitution
Subclasses
and
Subtypes
DISTRIBUTED OBJECTS I
Addresses, ports and sockets.
A simple client/server program.
Multiple clients.
Transmitting objects over a network.
Providing more complexity.
An
Introduction
to Object
Oriented
Programming
Muhammad
Adil Raja
Introduction
Abstraction
Object
Oriented
Design
Classes and
Methods
Messages,
Instances
and
Initialization
Inheritance
and
Substitution
Subclasses
and
Subtypes
IMPLEMENTATION I
Compilers and interpreters.
The receiver as argument.
Inherited methods.
Overridden methods.
Name encoding.
Dispatch tables.
Bytecode interpreters.
Just-in-time compilation.
An
Introduction
to Object
Oriented
Programming
Muhammad
Adil Raja
Introduction
Abstraction
Object
Oriented
Design
Classes and
Methods
Messages,
Instances
and
Initialization
Inheritance
and
Substitution
Subclasses
and
Subtypes
REFERENCES I
An Introduction to Object Oriented Programming,
Timothy Budd.

More Related Content

PPTX
Model-driven Round-trip Engineering of REST APIs
PDF
Thesis+of+laleh+eshkevari.ppt
PDF
PDF
PPT
00 Fundamentals of csharp course introduction
PDF
Modest Formalization of Software Design Patterns
PDF
DeepPavlov 2019
PDF
Thesis+of+latifa+guerrouj.ppt
Model-driven Round-trip Engineering of REST APIs
Thesis+of+laleh+eshkevari.ppt
00 Fundamentals of csharp course introduction
Modest Formalization of Software Design Patterns
DeepPavlov 2019
Thesis+of+latifa+guerrouj.ppt

Similar to An Introduction to Object Oriented Programming (20)

PPTX
Object Oriented Technologies
PDF
Introduction to Object Oriented Programming & Design Principles
PDF
Introduction to Object Oriented Programming & Design Principles
PPTX
1 intro
PPTX
OOSD1-unit1_1_16_09.pptx
PPTX
Object oriented programming
PPTX
Intro to object oriented programming.pptx
PPTX
Introduction to Object Oriented Programming
PPTX
SKILLWISE - OOPS CONCEPT
PPT
Oop(object oriented programming)
PPTX
Advanced Topics on Database - Unit-2 AU17
PPTX
Introduction to oop with c++
PPT
Basics of object oriented programming interview tips for Java
PPT
Oops ppt
PDF
Total oop in c# dot net
PPTX
JAVA PROGRAMMINGD
PPTX
General oop concept
PPTX
1669609053088_oops_final.pptx
PDF
OOPS_Unit_1
Object Oriented Technologies
Introduction to Object Oriented Programming & Design Principles
Introduction to Object Oriented Programming & Design Principles
1 intro
OOSD1-unit1_1_16_09.pptx
Object oriented programming
Intro to object oriented programming.pptx
Introduction to Object Oriented Programming
SKILLWISE - OOPS CONCEPT
Oop(object oriented programming)
Advanced Topics on Database - Unit-2 AU17
Introduction to oop with c++
Basics of object oriented programming interview tips for Java
Oops ppt
Total oop in c# dot net
JAVA PROGRAMMINGD
General oop concept
1669609053088_oops_final.pptx
OOPS_Unit_1
Ad

More from adil raja (20)

PDF
ANNs.pdf
PDF
A Software Requirements Specification
PDF
NUAV - A Testbed for Development of Autonomous Unmanned Aerial Vehicles
PDF
DevOps Demystified
PDF
On Research (And Development)
PDF
Simulators as Drivers of Cutting Edge Research
PDF
The Knock Knock Protocol
PDF
File Transfer Through Sockets
PDF
Remote Command Execution
PDF
Thesis
PDF
CMM Level 3 Assessment of Xavor Pakistan
PDF
Data Warehousing
PDF
Implementation of a Non-Intrusive Speech Quality Assessment Tool on a Mid-Net...
PDF
Implementation of a Non-Intrusive Speech Quality Assessment Tool on a Mid-Net...
PDF
Real-Time Non-Intrusive Speech Quality Estimation for VoIP
PDF
VoIP
PDF
ULMAN GUI Specifications
PDF
Modeling the Effect of Packet Loss on Speech Quality: Genetic Programming Bas...
PDF
ULMAN-GUI
PDF
Modeling the Effect of Packet Loss on Speech Quality: Genetic Programming Bas...
ANNs.pdf
A Software Requirements Specification
NUAV - A Testbed for Development of Autonomous Unmanned Aerial Vehicles
DevOps Demystified
On Research (And Development)
Simulators as Drivers of Cutting Edge Research
The Knock Knock Protocol
File Transfer Through Sockets
Remote Command Execution
Thesis
CMM Level 3 Assessment of Xavor Pakistan
Data Warehousing
Implementation of a Non-Intrusive Speech Quality Assessment Tool on a Mid-Net...
Implementation of a Non-Intrusive Speech Quality Assessment Tool on a Mid-Net...
Real-Time Non-Intrusive Speech Quality Estimation for VoIP
VoIP
ULMAN GUI Specifications
Modeling the Effect of Packet Loss on Speech Quality: Genetic Programming Bas...
ULMAN-GUI
Modeling the Effect of Packet Loss on Speech Quality: Genetic Programming Bas...
Ad

Recently uploaded (20)

PDF
MBA _Common_ 2nd year Syllabus _2021-22_.pdf
PPTX
Unit 4 Computer Architecture Multicore Processor.pptx
DOCX
Cambridge-Practice-Tests-for-IELTS-12.docx
PPTX
Virtual and Augmented Reality in Current Scenario
PDF
Chinmaya Tiranga quiz Grand Finale.pdf
PDF
What if we spent less time fighting change, and more time building what’s rig...
PDF
My India Quiz Book_20210205121199924.pdf
PDF
BP 704 T. NOVEL DRUG DELIVERY SYSTEMS (UNIT 1)
PDF
Complications of Minimal Access-Surgery.pdf
PDF
ChatGPT for Dummies - Pam Baker Ccesa007.pdf
PDF
FOISHS ANNUAL IMPLEMENTATION PLAN 2025.pdf
PDF
Vision Prelims GS PYQ Analysis 2011-2022 www.upscpdf.com.pdf
PDF
International_Financial_Reporting_Standa.pdf
PPTX
A powerpoint presentation on the Revised K-10 Science Shaping Paper
PDF
Practical Manual AGRO-233 Principles and Practices of Natural Farming
PDF
Paper A Mock Exam 9_ Attempt review.pdf.
PPTX
Chinmaya Tiranga Azadi Quiz (Class 7-8 )
PPTX
CHAPTER IV. MAN AND BIOSPHERE AND ITS TOTALITY.pptx
PDF
Empowerment Technology for Senior High School Guide
PPTX
20th Century Theater, Methods, History.pptx
MBA _Common_ 2nd year Syllabus _2021-22_.pdf
Unit 4 Computer Architecture Multicore Processor.pptx
Cambridge-Practice-Tests-for-IELTS-12.docx
Virtual and Augmented Reality in Current Scenario
Chinmaya Tiranga quiz Grand Finale.pdf
What if we spent less time fighting change, and more time building what’s rig...
My India Quiz Book_20210205121199924.pdf
BP 704 T. NOVEL DRUG DELIVERY SYSTEMS (UNIT 1)
Complications of Minimal Access-Surgery.pdf
ChatGPT for Dummies - Pam Baker Ccesa007.pdf
FOISHS ANNUAL IMPLEMENTATION PLAN 2025.pdf
Vision Prelims GS PYQ Analysis 2011-2022 www.upscpdf.com.pdf
International_Financial_Reporting_Standa.pdf
A powerpoint presentation on the Revised K-10 Science Shaping Paper
Practical Manual AGRO-233 Principles and Practices of Natural Farming
Paper A Mock Exam 9_ Attempt review.pdf.
Chinmaya Tiranga Azadi Quiz (Class 7-8 )
CHAPTER IV. MAN AND BIOSPHERE AND ITS TOTALITY.pptx
Empowerment Technology for Senior High School Guide
20th Century Theater, Methods, History.pptx

An Introduction to Object Oriented Programming