Object Oriented Programming Development - PowerPoint PPT Presentation

About This Presentation
Title:

Object Oriented Programming Development

Description:

Basic Terminology. Abstraction is the representation of the essential features of an object. ... Basic Terminology: Aggregation. Aggregation describes a 'has a' ... – PowerPoint PPT presentation

Number of Views:23
Avg rating:3.0/5.0
Slides: 22
Provided by: std73
Category:

less

Transcript and Presenter's Notes

Title: Object Oriented Programming Development


1
Object Oriented ProgrammingDevelopment
  • By
  • Marc Conrad
  • University of Luton
  • Email
  • Marc.Conrad_at_luton.ac.uk
  • Room
  • D104

2
What are we doing today?
  • Introduction of
  • the lecturer
  • Objects
  • Basic Terminology
  • C
  • the module

3
What 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.

4
What 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,

5
So, 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.

6
Why 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.

7
Example 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
8
The 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.



9
Basic 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.

10
Basic 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
11
Basic 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).
12
Basic TerminologyAggregation
  • Aggregation describes a has a relationship. One
    object is a part of another object.
  • We distinguish between composite aggregation (the
    composite owns the part) and shared aggregation
    (the part is shared by more then one composite).

A car has wheels.
13
Basic 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).

14
The 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.

15
Historical 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
16
C 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.
17
C 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.
18
Module Outline
  • Introduction
  • The non object oriented basics
  • Classes
  • Design Approaches
  • Testing
  • Inheritance
  • Aggregation
  • Polymorphism
  • Multifile Development

19
Assessment Details
  • 50 in course and 50 exam.
  • For more details for the in course assignment see
    separate handout.

20
Books
  • Teach Yourself C in 10 minutes,J. Liberty,
    SAMS 1999.
  • C - How to program, Deitel Deitel, Prentice
    Hall, 2001.
  • Object Oriented Programming with C, David
    Parson, Letts Educational, London 1997.

21
Websites
  • A C online tutorialhttp//www.cplusplus.com/do
    c/tutorial/
  • The C FAQhttp//www.parashift.com/c-faq-lite
  • The homepage of Bjarne Stroustrup, the inventor
    of Chttp//www.research.att.com/bs

And many, many more!
Write a Comment
User Comments (0)
About PowerShow.com