Title: Object Oriented Programming Development
1Object Oriented ProgrammingDevelopment
2What are we doing today?
- Introduction of
- the lecturer
- Objects
- Basic Terminology
- C
- the module
3PROGRAMMING PARADIGMS
- A Programming Paradigms defines the Methodology
of designing and implementing programs using the
key feature and building blocks of a Programming
Language . - Types
- 1. Procedural Programming
- 2. Object Based Programming
- 3. Object Oriented Programming
4Procedural Programming
- A Program in a procedural language is a list of
instruction where each statements tells the
computer to do something. The focus is on the
Processing, the Algorithm needed to perform the
desired computation.
5Object Based Programming
- In this programming data and its associated
meaningful function as enclosed in one single
entity a class. Classes enforce information
hiding and abstraction thereby separating the
implementation details uses the interface.
6Object Oriented Programming
- This programming paradigm is support of object
based programming. It offers all the features of
object based programming and overcomes its
limitations by implementing inheritance so that
real world relations among objects can be
represented programmatically.
7What is Object Oriented Programming?
- Identifying objects and assigning
responsibilities to these objects. - Objects communicate to other objects by sending
messages. - Messages are received by the methods of an object
- An object is like a black box.
- The internal details are hidden.
8What is an object?
- Tangible Things as a car, printer, ...
- Roles as employee, boss, ...
- Incidents as flight, overflow, ...
- Interactions as contract, sale, ...
- Specifications as colour, shape,
9So, what are objects?
- an object represents an individual, identifiable
item, unit, or entity, either real or abstract,
with a well-defined role in the problem domain. - Or
- An "object" is anything to which a concept
applies. - Etc.
10Why do we care about objects?
- Modularity - large software projects can be split
up in smaller pieces. - Reuseability - Programs can be assembled from
pre-written software components. - Extensibility - New software components can be
written or developed from existing ones.
11Example The Person class
- includeltstringgt
- includeltiostreamgt
- class Person
- char name20
- int yearOfBirth
- public
- void displayDetails()
- cout ltlt name ltlt " born in "
- ltlt yearOfBirth ltlt endl
-
- //...
private data
public processes
12The two parts of an object
- Object Data Methods
- or to say the same differently
- An object has the responsibility to know and the
responsibility to do.
13Basic Terminology
- Abstraction is the representation of the
essential features of an object. These are
encapsulated into an abstract data type. - Encapsulation is the practice of including in an
object everything it needs hidden from other
objects. The internal state is usually not
accessible by other objects.
14Basic TerminologyInheritance
- Inheritance means that one class inherits the
characteristics of another class.This is also
called a is a relationship
A car is a vehicle
A dog is an animal
A teacher is a person
152. Inheritance Concepts
- Derive a new class (subclass) from an existing
class (base class or superclass). - Inheritance creates a hierarchy of related
classes (types) which share code and interface.
15
16Inheritance Examples
17Types of Inheritance
- Single
- Multiple
- Multilevel
- Hierarchical
- Hybrid
18Basic TerminologyPolymorphism
- Polymorphism means having many forms. It allows
different objects to respond to the same message
in different ways, the response specific to the
type of the object.
E.g. the message displayDetails() of the Person
class should give different results when send to
a Student object (e.g. the enrolment number).
19Types of Polymorphism
- Compile time/ Static Polymorphism
- Function Overloading
- Run time/ Dynamic Polymorphism
- Virtual Function
- Operator Overloading
20Basic TerminologyModularity
- Modularity is the property of a system that has
been decomposed into a set of cohesive and
loosely coupled modules - For example the computer system comprises CPU,
Monitor, Keyboard , Mouse Speakers etc. Now
these parts are complete unit in themselves, yet
they are a subpart of computer. This is
Modularity .
21Basic TerminologyBehaviour and Messages
- The most important aspect of an object is its
behaviour (the things it can do). A behaviour is
initiated by sending a message to the object
(usually by calling a method).
22The two steps of Object Oriented Programming
- Making Classes Creating, extending or reusing
abstract data types. - Making Objects interact Creating objects from
abstract data types and defining their
relationships.
23Historical Notes
- C owes most to C. Other ancestors are
Simula67and Algol68. - First versions of C in 1980 under the name C
with classes. Since 1983 the name C is used. - 1990 ANSI/ISO 9899 defines a standard for C
- 1998 ISO/IEC 14882 specifies the standard for C
C 1987
24C and C
- C is a subset of C.Advantages Existing C
libraries can be used, efficient code can be
generated.But C has the same caveats and
problems as C (e.g. pointer arithmetic,). - C can be used both as a low level and as a high
level language.
We focus on the high level aspects.
25C and Java
- Java is a full object oriented language, all code
has to go into classes. - C - in contrast - is a hybrid language, capable
both of functional and object oriented
programming.
So, C is more powerful but also more difficult
to handle than Java.
26Advantages of OOPs
- Re use of Code
- It model real world well
- Program are easy to understand
- Easy redesign Extension
27Disadvantages of OOPs
- The relations among classes become artificial as
times - The OOPs Programs design is tricky.
- To program with OOP, Programmer proper Skil.
28Module Outline
- Introduction
- The non object oriented basics
- Classes
- Design Approaches
- Testing
- Inheritance
- Aggregation
- Polymorphism
- Multifile Development
29Thank You